| <?xml version="1.0" encoding="UTF-8"?> | |
| <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/maven-v4_0_0.xsd"> | |
| <modelVersion>4.0.0</modelVersion> | |
| <groupId>com.google.truth</groupId> | |
| <artifactId>truth-parent</artifactId> | |
| <version>HEAD-SNAPSHOT</version> | |
| <packaging>pom</packaging> | |
| <name>Truth (Parent)</name> | |
| <properties> | |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
| <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | |
| <!-- Properties for multiple-artifact deps. --> | |
| <auto-value.version>1.11.0</auto-value.version> | |
| <!-- | |
| We have a separate property for each flavor of Guava (instead of a shared | |
| version without the -android and -jre suffixes) because that lets | |
| Dependabot update our Guava versions. | |
| --> | |
| <guava.android.version>33.5.0-android</guava.android.version> | |
| <!-- | |
| Also, we have this comment in between the 2 flavors of Guava. That's | |
| also to smooth the Dependabot update process: Dependabot generates a | |
| separate PR for each flavor. Even if we approve both at the same | |
| time, one gets submitted before the other, and | |
| the other ends up with a merge conflict. That requires reapprovals. | |
| --> | |
| <guava.jre.version>33.5.0-jre</guava.jre.version> | |
| <gwt.version>2.11.0</gwt.version> | |
| <protobuf.version>4.32.1</protobuf.version> | |
| <!-- Property for protobuf-lite protocArtifact, which isn't a "normal" Maven dep. --> | |
| <!-- TODO(cpovirk): Use protobuf.version instead. But that requires finding the new way to request the Lite runtime. --> | |
| <protobuf-lite.protoc.version>3.1.0</protobuf-lite.protoc.version> | |
| <!-- Property for an extension, since Maven doesn't have extensionManagement. --> | |
| <os-maven-plugin.version>1.7.1</os-maven-plugin.version> | |
| <!-- Default to no additional options (for Java 8). Overridden by a profile. --> | |
| <conditionalJavadoc9PlusOptions></conditionalJavadoc9PlusOptions> | |
| </properties> | |
| <dependencyManagement> | |
| <dependencies> | |
| <dependency> | |
| <groupId>com.google.truth</groupId> | |
| <artifactId>truth</artifactId> | |
| <version>${project.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>com.google.truth.extensions</groupId> | |
| <artifactId>truth-liteproto-extension</artifactId> | |
| <version>${project.version}</version> | |
| </dependency> | |
| <!-- | |
| We could add the other modules of Truth, but there's no need because no | |
| modules depend on them yet. | |
| --> | |
| <dependency> | |
| <!-- | |
| In addition to setting the version of Guava that's used when Truth | |
| depends directly on com.google.common:guava, this section also | |
| overrides the version that's pulled in transitively by guava-gwt | |
| (which is a test-scope dependency of core Truth). The Guava APIs | |
| "missing" in guava-android might cause us problems down the line if we | |
| actually started to run nontrivial GWT tests; I'm not sure. | |
| --> | |
| <groupId>com.google.guava</groupId> | |
| <artifactId>guava</artifactId> | |
| <version>${guava.android.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>org.jspecify</groupId> | |
| <artifactId>jspecify</artifactId> | |
| <version>1.0.0</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>junit</groupId> | |
| <artifactId>junit</artifactId> | |
| <version>4.13.2</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>org.gwtproject</groupId> | |
| <artifactId>gwt-user</artifactId> | |
| <version>${gwt.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>org.gwtproject</groupId> | |
| <artifactId>gwt-dev</artifactId> | |
| <version>${gwt.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>com.google.auto.value</groupId> | |
| <artifactId>auto-value-annotations</artifactId> | |
| <version>${auto-value.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>com.google.guava</groupId> | |
| <artifactId>guava-gwt</artifactId> | |
| <version>${guava.jre.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>com.google.guava</groupId> | |
| <artifactId>guava-testlib</artifactId> | |
| <version>${guava.android.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>com.google.errorprone</groupId> | |
| <artifactId>error_prone_annotations</artifactId> | |
| <version>2.41.0</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>com.google.protobuf</groupId> | |
| <artifactId>protobuf-java</artifactId> | |
| <version>${protobuf.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>com.google.protobuf</groupId> | |
| <artifactId>protobuf-lite</artifactId> | |
| <version>3.0.1</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>com.google.re2j</groupId> | |
| <artifactId>re2j</artifactId> | |
| <version>1.8</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>org.ow2.asm</groupId> | |
| <artifactId>asm</artifactId> | |
| <version>9.8</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>com.google.jsinterop</groupId> | |
| <artifactId>jsinterop-annotations</artifactId> | |
| <version>2.0.0</version> | |
| </dependency> | |
| </dependencies> | |
| </dependencyManagement> | |
| <description> | |
| Parent metadata for Truth, a Java assertion framework. | |
| </description> | |
| <modules> | |
| <module>core</module> | |
| <module>extensions</module> | |
| </modules> | |
| <prerequisites><maven>3.1.1</maven></prerequisites> | |
| <developers> | |
| <developer> | |
| <id>cgruber</id> | |
| <name>Christian Gruber</name> | |
| <email>christianedwardgruber@gmail.com</email> | |
| </developer> | |
| <developer> | |
| <id>kak</id> | |
| <name>Kurt Alfred Kluever</name> | |
| </developer> | |
| <developer> | |
| <id>dsaff</id> | |
| <name>David Saff</name> | |
| </developer> | |
| <developer> | |
| <id>hagbard</id> | |
| <name>David B</name> | |
| </developer> | |
| <developer> | |
| <id>bendoug</id> | |
| <name>Ben Douglass</name> | |
| </developer> | |
| <developer> | |
| <id>dploch</id> | |
| <name>Daniel Ploch</name> | |
| </developer> | |
| <developer> | |
| <id>jnyman</id> | |
| <name>Jens Nyman</name> | |
| </developer> | |
| <developer> | |
| <id>peteg</id> | |
| <name>Pete Gillin</name> | |
| </developer> | |
| <developer> | |
| <id>pcloudy</id> | |
| <name>Yun Peng</name> | |
| </developer> | |
| </developers> | |
| <url>http://github.com/google/truth</url> | |
| <licenses> | |
| <license> | |
| <name>The Apache Software License, Version 2.0</name> | |
| <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> | |
| <distribution>repo</distribution> | |
| </license> | |
| </licenses> | |
| <issueManagement> | |
| <system>Github</system> | |
| <url>https://github.com/google/truth/issues</url> | |
| </issueManagement> | |
| <ciManagement> | |
| <system>Jenkins</system> | |
| <url>https://travis-ci.org/google/truth</url> | |
| </ciManagement> | |
| <scm> | |
| <connection>scm:git:git@github.com:google/truth.git</connection> | |
| <url>scm:git:git@github.com:google/truth.git</url> | |
| </scm> | |
| <build> | |
| <plugins> | |
| <plugin> | |
| <artifactId>maven-javadoc-plugin</artifactId> | |
| <executions> | |
| <execution> | |
| <id>attach-docs</id> | |
| <goals><goal>jar</goal></goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <artifactId>maven-source-plugin</artifactId> | |
| <executions> | |
| <execution> | |
| <id>attach-sources</id> | |
| <goals><goal>jar</goal></goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.sonatype.central</groupId> | |
| <artifactId>central-publishing-maven-plugin</artifactId> | |
| <version>0.8.0</version> | |
| <extensions>true</extensions> | |
| </plugin> | |
| </plugins> | |
| <pluginManagement> | |
| <plugins> | |
| <!-- https://stackoverflow.com/a/51093732/28465 --> | |
| <plugin> | |
| <artifactId>maven-site-plugin</artifactId> | |
| <version>3.21.0</version> | |
| </plugin> | |
| <plugin> | |
| <artifactId>maven-project-info-reports-plugin</artifactId> | |
| <version>3.9.0</version> | |
| </plugin> | |
| <plugin> | |
| <artifactId>maven-javadoc-plugin</artifactId> | |
| <version>3.11.3</version> | |
| <configuration> | |
| <additionalOptions> | |
| <additionalOption>-Xdoclint:-html ${conditionalJavadoc9PlusOptions}</additionalOption> | |
| </additionalOptions> | |
| <doctitle>Truth ${project.version}</doctitle> | |
| <windowtitle>Truth ${project.version}</windowtitle> | |
| <quiet>true</quiet> | |
| <notimestamp>true</notimestamp> | |
| <encoding>UTF-8</encoding> | |
| <docencoding>UTF-8</docencoding> | |
| <charset>UTF-8</charset> | |
| <overview>overview.html</overview> | |
| <detectJavaApiLink>false</detectJavaApiLink> | |
| <offlineLinks> | |
| <!-- We use offlineLink here for reasons discussed in the Guava pom.xml. --> | |
| <offlineLink> | |
| <url>https://javadoc.io/doc/com.google.j2objc/j2objc-annotations/latest/</url> | |
| <location>${project.basedir}/javadoc-link/j2objc-annotations</location> | |
| </offlineLink> | |
| </offlineLinks> | |
| <links> | |
| <link>https://guava.dev/releases/snapshot-jre/api/docs</link> | |
| <link>https://protobuf.dev/reference/java/api-docs/</link> | |
| <link>https://junit.org/junit4/javadoc/latest/</link> | |
| <link>https://docs.oracle.com/en/java/javase/21/docs/api/</link> | |
| <link>https://jspecify.dev/docs/api/</link> | |
| <link>https://errorprone.info/api/latest/</link> | |
| </links> | |
| <sourceFileExcludes> | |
| <sourceFileExclude>**/super/**/*.java</sourceFileExclude> | |
| </sourceFileExcludes> | |
| </configuration> | |
| </plugin> | |
| <plugin> | |
| <artifactId>maven-jar-plugin</artifactId> | |
| <version>3.4.2</version> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.codehaus.mojo</groupId> | |
| <artifactId>animal-sniffer-maven-plugin</artifactId> | |
| <version>1.24</version> | |
| <configuration> | |
| <annotations>com.google.common.truth.IgnoreJRERequirement</annotations> | |
| <signature> | |
| <groupId>com.toasttab.android</groupId> | |
| <artifactId>gummy-bears-api-23</artifactId> | |
| <version>0.12.0</version> | |
| <!-- TODO(cpovirk): In principle, it would make sense to *also* test compatibility with JDK 1.8, since Truth also has JRE users. --> | |
| </signature> | |
| </configuration> | |
| <executions> | |
| <execution> | |
| <id>check-java-version-compatibility</id> | |
| <phase>test</phase> | |
| <goals> | |
| <goal>check</goal> | |
| </goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <artifactId>maven-compiler-plugin</artifactId> | |
| <version>3.14.0</version> | |
| <configuration> | |
| <source>1.8</source> | |
| <target>1.8</target> | |
| <parameters>true</parameters> | |
| </configuration> | |
| </plugin> | |
| <plugin> | |
| <artifactId>maven-source-plugin</artifactId> | |
| <version>3.3.1</version> | |
| </plugin> | |
| <plugin> | |
| <artifactId>maven-gpg-plugin</artifactId> | |
| <version>3.2.8</version> | |
| </plugin> | |
| <plugin> | |
| <artifactId>maven-surefire-plugin</artifactId> | |
| <version>3.5.4</version> | |
| </plugin> | |
| <plugin> | |
| <artifactId>maven-enforcer-plugin</artifactId> | |
| <version>3.6.1</version> | |
| <executions> | |
| <execution> | |
| <id>enforce</id> | |
| <configuration> | |
| <rules> | |
| <requireUpperBoundDeps> | |
| <excludes> | |
| <!-- We have some deps on guava-android and others on guava-jre. --> | |
| <exclude>com.google.guava:guava</exclude> | |
| </excludes> | |
| </requireUpperBoundDeps> | |
| <!-- | |
| Note that this rule would not catch a conflict between, say, | |
| java8 and liteproto, since no Truth module depends on both | |
| of those. If we wanted, we could create such a module. | |
| --> | |
| </rules> | |
| </configuration> | |
| <goals> | |
| <goal>enforce</goal> | |
| </goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.codehaus.mojo</groupId> | |
| <artifactId>gwt-maven-plugin</artifactId> | |
| <version>2.10.0</version> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.xolstice.maven.plugins</groupId> | |
| <artifactId>protobuf-maven-plugin</artifactId> | |
| <version>0.6.1</version> | |
| </plugin> | |
| </plugins> | |
| </pluginManagement> | |
| </build> | |
| <profiles> | |
| <profile> | |
| <id>sonatype-oss-release</id> | |
| <build> | |
| <plugins> | |
| <plugin> | |
| <artifactId>maven-gpg-plugin</artifactId> | |
| <executions> | |
| <execution> | |
| <id>sign-artifacts</id> | |
| <phase>verify</phase> | |
| <goals><goal>sign</goal></goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| </plugins> | |
| </build> | |
| </profile> | |
| </profiles> | |
| </project> |