| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Copyright 2011 The Error Prone Authors. |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
| <modelVersion>4.0.0</modelVersion> |
| |
| <name>Error Prone parent POM</name> |
| <groupId>com.google.errorprone</groupId> |
| <artifactId>error_prone_parent</artifactId> |
| <version>1.0-HEAD-SNAPSHOT</version> |
| <packaging>pom</packaging> |
| |
| <description>Error Prone is a static analysis tool for Java that catches common programming mistakes at compile-time.</description> |
| <url>https://errorprone.info</url> |
| |
| <properties> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <guava.version>33.5.0-jre</guava.version> |
| <truth.version>1.4.0</truth.version> |
| <autoservice.version>1.0.1</autoservice.version> |
| <autovalue.version>1.9</autovalue.version> |
| <junit.version>4.13.2</junit.version> |
| <dataflow.version>3.41.0-eisop1</dataflow.version> |
| <mockito.version>4.9.0</mockito.version> |
| <compile.testing.version>0.23.0</compile.testing.version> |
| <caffeine.version>3.0.5</caffeine.version> |
| <flogger.version>0.7.4</flogger.version> |
| <maven-javadoc-plugin.version>3.11.2</maven-javadoc-plugin.version> |
| <maven-source-plugin.version>3.2.1</maven-source-plugin.version> |
| <central-publishing-maven-plugin.version>0.8.0</central-publishing-maven-plugin.version> |
| <protobuf.version>4.33.2</protobuf.version> |
| <grpc.version>1.43.3</grpc.version> |
| <jspecify.version>1.0.0</jspecify.version> |
| <google-java-format.version>1.35.0</google-java-format.version> |
| </properties> |
| |
| <organization> |
| <name>Google LLC</name> |
| <url>https://www.google.com</url> |
| </organization> |
| |
| <developers> |
| <developer> |
| <name>Eddie Aftandilian</name> |
| </developer> |
| </developers> |
| |
| <modules> |
| <module>check_api</module> |
| <module>test_helpers</module> |
| <module>core</module> |
| <module>annotation</module> |
| <module>annotations</module> |
| <module>type_annotations</module> |
| <module>docgen</module> |
| <module>docgen_processor</module> |
| <module>refaster</module> |
| </modules> |
| |
| <scm> |
| <connection>scm:git:https://github.com/google/error-prone.git</connection> |
| <developerConnection>scm:git:[email protected]:google/error-prone.git</developerConnection> |
| <url>https://github.com/google/error-prone</url> |
| </scm> |
| |
| <licenses> |
| <license> |
| <name>Apache 2.0</name> |
| <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> |
| </license> |
| </licenses> |
| |
| <build> |
| <resources> |
| <resource> |
| <directory>src/main/java</directory> |
| <includes> |
| <include>**/*.properties</include> |
| <include>**/*.binarypb</include> |
| </includes> |
| </resource> |
| </resources> |
| <testResources> |
| <testResource> |
| <directory>src/test/java</directory> |
| <includes> |
| <include>**/testdata/**</include> |
| </includes> |
| </testResource> |
| </testResources> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-shade-plugin</artifactId> |
| <version>2.1</version> |
| <configuration> |
| <dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation> |
| </configuration> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <version>3.0.0</version> |
| <executions> |
| <execution> |
| <id>enforce-maven</id> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <requireMavenVersion> |
| <version>3.0.5</version> |
| </requireMavenVersion> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>biz.aQute.bnd</groupId> |
| <artifactId>bnd-maven-plugin</artifactId> |
| <version>6.4.0</version> |
| <executions> |
| <execution> |
| <id>generate-OSGi-manifest</id> |
| <goals> |
| <goal>bnd-process</goal> |
| </goals> |
| <configuration> |
| <bnd><![CDATA[ |
| Bundle-SymbolicName: com.google.$<replacestring;$<replacestring;${project.artifactId};^error_prone;errorprone>;_;.> |
| Automatic-Module-Name: $<Bundle-SymbolicName> |
| -exportcontents: com.google.errorprone* |
| -noextraheaders: true |
| -removeheaders: Private-Package |
| ]]></bnd> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <version>3.2.2</version> |
| <configuration> |
| <archive> |
| <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> |
| </archive> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <version>${maven-javadoc-plugin.version}</version> |
| <configuration> |
| <source>21</source> |
| <notimestamp>true</notimestamp> |
| <doctitle>Error Prone ${project.version} API</doctitle> |
| <disableSourcepathUsage>true</disableSourcepathUsage> |
| <legacyMode>true</legacyMode> |
| <additionalOptions> |
| <additionalOption>--add-exports=java.base/jdk.internal.javac=ALL-UNNAMED</additionalOption> |
| <additionalOption>--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</additionalOption> |
| <additionalOption>--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</additionalOption> |
| <additionalOption>--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</additionalOption> |
| <additionalOption>--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</additionalOption> |
| <additionalOption>--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</additionalOption> |
| <additionalOption>--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</additionalOption> |
| <additionalOption>--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</additionalOption> |
| <additionalOption>--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</additionalOption> |
| <additionalOption>--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</additionalOption> |
| <additionalOption>--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</additionalOption> |
| <additionalOption>--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</additionalOption> |
| </additionalOptions> |
| <sourceFileExcludes> |
| <sourceFileExclude>**/module-info.java</sourceFileExclude> |
| </sourceFileExcludes> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <version>3.13.0</version> |
| <configuration> |
| <source>21</source> |
| <target>21</target> |
| <parameters /> |
| <compilerArgs> |
| <arg>--add-exports=java.base/jdk.internal.javac=ALL-UNNAMED</arg> |
| <arg>--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg> |
| <arg>--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg> |
| <arg>--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg> |
| <arg>--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg> |
| <arg>--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg> |
| <arg>--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg> |
| <arg>--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg> |
| <arg>--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg> |
| <arg>--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg> |
| <arg>--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg> |
| <arg>--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg> |
| </compilerArgs> |
| <testExcludes> |
| <exclude>**/testdata/**</exclude> |
| </testExcludes> |
| </configuration> |
| <executions> |
| <execution> |
| <id>default-compile</id> |
| <configuration> |
| <compilerArgs combine.children="append"> |
| <arg>-Xlint:-options</arg> |
| </compilerArgs> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| <version>2.1.2</version> |
| <executions> |
| <execution> |
| <id>attach-sources</id> |
| <phase>package</phase> |
| <goals> |
| <goal>jar-no-fork</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-site-plugin</artifactId> |
| <version>3.10.0</version> |
| <executions> |
| <execution> |
| <id>attach-descriptor</id> |
| <goals> |
| <goal>attach-descriptor</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>3.1.0</version> |
| <configuration> |
| <jdkToolchain> |
| <!-- |
| Test against the current default JDK, not the latest JDK a toolchain is registered for. |
| |
| On Error Prone's CI, the JDK we want to run the tests against is installed last, to |
| make it the default on the PATH and for JAVA_HOME: |
| https://github.com/google/error-prone/blob/master/.github/workflows/ci.yml |
| |
| See also Guava's similar logic here: |
| https://github.com/google/guava/blob/781068569f0a275ac3c4bce08c9a1fe4d624048a/pom.xml#L20 |
| --> |
| <version>${java.specification.version}</version> |
| </jdkToolchain> |
| <argLine> |
| -Xmx1g |
| --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED |
| --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED |
| --add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED |
| --add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED |
| --add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED |
| --add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED |
| --add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED |
| --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED |
| --add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED |
| --add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED |
| --add-opens=java.base/java.math=ALL-UNNAMED |
| --add-opens=java.base/java.nio=ALL-UNNAMED |
| </argLine> |
| <trimStackTrace>false</trimStackTrace> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-toolchains-plugin</artifactId> |
| <version>3.2.0</version> |
| <configuration> |
| <toolchains> |
| <jdk> |
| <version>25</version> |
| </jdk> |
| </toolchains> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>toolchain</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| |
| <distributionManagement> |
| <snapshotRepository> |
| <id>sonatype-nexus-snapshots</id> |
| <url>https://central.sonatype.com/repository/maven-snapshots/</url> |
| </snapshotRepository> |
| </distributionManagement> |
| |
| <profiles> |
| <profile> |
| <id>release</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.sonatype.central</groupId> |
| <artifactId>central-publishing-maven-plugin</artifactId> |
| <version>${central-publishing-maven-plugin.version}</version> |
| <extensions>true</extensions> |
| <configuration> |
| <publishingServerId>central</publishingServerId> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| <version>${maven-source-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>attach-sources</id> |
| <goals> |
| <goal>jar-no-fork</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <version>${maven-javadoc-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>attach-javadocs</id> |
| <goals> |
| <goal>jar</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-gpg-plugin</artifactId> |
| <version>1.6</version> |
| <executions> |
| <execution> |
| <id>sign-artifacts</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>sign</goal> |
| </goals> |
| <configuration> |
| <gpgArguments> |
| <arg>--pinentry-mode</arg> |
| <arg>loopback</arg> |
| </gpgArguments> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>custom-test-runtime-version</id> |
| <activation> |
| <property> |
| <name>surefire.jdk-toolchain-version</name> |
| </property> |
| </activation> |
| <build> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <jdkToolchain> |
| <version>${surefire.jdk-toolchain-version}</version> |
| </jdkToolchain> |
| </configuration> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| </build> |
| </profile> |
| </profiles> |
| </project> |