Introduce (but disable) Palantir checks, properly support non-Maven Central dependencies

This commit is contained in:
Stephan Schroevers
2020-06-14 18:53:35 +02:00
parent dc7762eaf2
commit fed8615bf5
3 changed files with 97 additions and 12 deletions

View File

@@ -9,10 +9,12 @@ addons:
install:
- mvn io.takari:maven:wrapper
script:
# We run the build twice: once against the original Error Prone release, and
# once against the Picnic Error Prone fork.
# We run the build twice: once against the original Error Prone release,
# using only Error Prone checks available on Maven Central, and once against
# the Picnic Error Prone fork, additionally enabling Error Prone checks
# available from other artifact repositories.
- ./mvnw clean install
- ./mvnw clean install -Perror-prone-fork -s settings.xml
- ./mvnw clean install -Perror-prone-fork -Pnon-maven-central -s settings.xml
# XXX: Enable SonarCloud once we "go public".
# ./mvnw jacoco:prepare-agent surefire:test jacoco:report sonar:sonar
- ./mvnw jacoco:prepare-agent surefire:test jacoco:report

77
pom.xml
View File

@@ -1029,6 +1029,78 @@
</dependencies>
</dependencyManagement>
</profile>
<profile>
<!-- Error Prone checks which are not availabe from Maven Central;
these are therefore not enabled by default. -->
<id>non-maven-central</id>
<!-- XXX: Two other dependencies are potentially of interest:
`com.palantir.assertj-automation:assertj-refaster-rules` and
`com.palantir.baseline:baseline-refaster-rules` contain Refaster
rules which aren't currently applied. We should use
`RefasterRuleBuilderScanner` to convert those to `.refaster` files
so that we can pick them up. (But in case of
`baseline-refaster-rules` perhaps we can simply incorporate all of
them.) -->
<properties>
<version.palantir-assertj-automation>0.2.1</version.palantir-assertj-automation>
<version.palantir-baseline>3.26.0</version.palantir-baseline>
<version.reactor-error-prone>0.1.4</version.reactor-error-prone>
</properties>
<dependencyManagement>
<!-- All these dependencies are specified as a workaround for
https://github.com/mojohaus/versions-maven-plugin/issues/244. -->
<dependencies>
<dependency>
<groupId>com.github.lhotari</groupId>
<artifactId>reactor-error-prone</artifactId>
<version>${version.reactor-error-prone}</version>
</dependency>
<dependency>
<groupId>com.palantir.assertj-automation</groupId>
<artifactId>assertj-error-prone</artifactId>
<version>${version.palantir-assertj-automation}</version>
</dependency>
<dependency>
<groupId>com.palantir.baseline</groupId>
<artifactId>baseline-error-prone</artifactId>
<version>${version.palantir-baseline}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths combine.children="append">
<path>
<groupId>com.github.lhotari</groupId>
<artifactId>reactor-error-prone</artifactId>
<version>${version.reactor-error-prone}</version>
</path>
<!-- XXX: Before enabling these checks we'll
need to resolve some violations. Some of the
checks will need to be disabled; check how to
best do this, given that this configuration is
defined in an optional profile.
<path>
<groupId>com.palantir.assertj-automation</groupId>
<artifactId>assertj-error-prone</artifactId>
<version>${version.palantir-assertj-automation}</version>
</path>
<path>
<groupId>com.palantir.baseline</groupId>
<artifactId>baseline-error-prone</artifactId>
<version>${version.palantir-baseline}</version>
</path>
-->
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- By default we verify various aspects of a module and the
artifact(s) it produces. We define these checks in a profile so
@@ -1169,11 +1241,6 @@
<artifactId>error_prone_core</artifactId>
<version>${version.error-prone}</version>
</path>
<path>
<groupId>com.github.lhotari</groupId>
<artifactId>reactor-error-prone</artifactId>
<version>0.1.4</version>
</path>
<path>
<groupId>com.google.guava</groupId>
<artifactId>guava-beta-checker</artifactId>

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- The build defines an optional `error-prone-fork` profile using which
the code is built against a Picnic-managed fork of Error Prone. This fork
is hosted by Jitpack.io. See
https://jitpack.io/#PicnicSupermarket/error-prone. -->
<profiles>
<profile>
<!-- The build defines an optional `error-prone-fork` profile using
which the code is built against a Picnic-managed fork of Error
Prone. This fork is hosted by Jitpack.io. See
https://jitpack.io/#PicnicSupermarket/error-prone. -->
<id>error-prone-fork</id>
<repositories>
<repository>
@@ -15,6 +15,22 @@
</repository>
</repositories>
</profile>
<profile>
<!-- The build defines an optional `non-maven-central` profile
using which additional Error Prone checks not available on Maven
Central are enabled. -->
<id>non-maven-central</id>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<repository>
<id>palantir</id>
<url>https://dl.bintray.com/palantir/releases</url>
</repository>
</repositories>
</profile>
</profiles>
</settings>