1<?xml version="1.0" encoding="UTF-8"?> 2<!-- 3 Copyright 2020 Google Inc. 4 5 Licensed under the Apache License, Version 2.0 (the "License"); 6 you may not use this file except in compliance with the License. 7 You may obtain a copy of the License at 8 9 http://www.apache.org/licenses/LICENSE-2.0 10 11 Unless required by applicable law or agreed to in writing, software 12 distributed under the License is distributed on an "AS IS" BASIS, 13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 See the License for the specific language governing permissions and 15 limitations under the License. 16--> 17 18<project 19 xmlns="http://maven.apache.org/POM/4.0.0" 20 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 21 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 22 <modelVersion>4.0.0</modelVersion> 23 24 <groupId>com.google.turbine</groupId> 25 <artifactId>turbine</artifactId> 26 <version>HEAD-SNAPSHOT</version> 27 28 <name>turbine</name> 29 <description>turbine is a header compiler for Java</description> 30 <url>https://github.com/google/turbine</url> 31 32 <properties> 33 <asm.version>9.7</asm.version> 34 <guava.version>32.1.1-jre</guava.version> 35 <errorprone.version>2.36.0</errorprone.version> 36 <maven-javadoc-plugin.version>3.3.1</maven-javadoc-plugin.version> 37 <maven-source-plugin.version>3.2.1</maven-source-plugin.version> 38 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 39 <protobuf.version>3.25.5</protobuf.version> 40 <grpc.version>1.43.2</grpc.version> 41 <native.maven.plugin.version>0.9.23</native.maven.plugin.version> 42 <truth.version>1.4.0</truth.version> 43 </properties> 44 45 <organization> 46 <name>Google Inc.</name> 47 <url>http://www.google.com/</url> 48 </organization> 49 50 <developers> 51 <developer> 52 <name>Liam Miller-Cushon</name> 53 </developer> 54 </developers> 55 56 <scm> 57 <connection>scm:git:https://github.com/google/turbine.git</connection> 58 <developerConnection>scm:git:git@github.com:google/turbine.git</developerConnection> 59 <url>https://github.com/google/turbine</url> 60 </scm> 61 62 <licenses> 63 <license> 64 <name>Apache 2.0</name> 65 <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> 66 </license> 67 </licenses> 68 69 <dependencies> 70 <dependency> 71 <groupId>com.google.guava</groupId> 72 <artifactId>guava</artifactId> 73 <version>${guava.version}</version> 74 </dependency> 75 <dependency> 76 <groupId>com.google.errorprone</groupId> 77 <artifactId>error_prone_annotations</artifactId> 78 <version>${errorprone.version}</version> 79 </dependency> 80 <dependency> 81 <groupId>org.jspecify</groupId> 82 <artifactId>jspecify</artifactId> 83 <version>1.0.0</version> 84 <optional>true</optional> 85 </dependency> 86 <dependency> 87 <groupId>com.google.protobuf</groupId> 88 <artifactId>protobuf-java</artifactId> 89 <version>${protobuf.version}</version> 90 </dependency> 91 <dependency> 92 <groupId>org.ow2.asm</groupId> 93 <artifactId>asm</artifactId> 94 <version>${asm.version}</version> 95 <scope>test</scope> 96 </dependency> 97 <dependency> 98 <groupId>org.ow2.asm</groupId> 99 <artifactId>asm-tree</artifactId> 100 <version>${asm.version}</version> 101 <scope>test</scope> 102 </dependency> 103 <dependency> 104 <groupId>org.ow2.asm</groupId> 105 <artifactId>asm-util</artifactId> 106 <version>${asm.version}</version> 107 <scope>test</scope> 108 </dependency> 109 <dependency> 110 <groupId>junit</groupId> 111 <artifactId>junit</artifactId> 112 <version>4.13.2</version> 113 <scope>test</scope> 114 </dependency> 115 <dependency> 116 <groupId>com.google.truth</groupId> 117 <artifactId>truth</artifactId> 118 <version>${truth.version}</version> 119 <scope>test</scope> 120 </dependency> 121 <dependency> 122 <groupId>com.google.truth.extensions</groupId> 123 <artifactId>truth-proto-extension</artifactId> 124 <version>${truth.version}</version> 125 <scope>test</scope> 126 </dependency> 127 <dependency> 128 <groupId>com.google.truth.extensions</groupId> 129 <artifactId>truth-java8-extension</artifactId> 130 <version>${truth.version}</version> 131 <scope>test</scope> 132 </dependency> 133 <dependency> 134 <groupId>com.google.jimfs</groupId> 135 <artifactId>jimfs</artifactId> 136 <version>1.2</version> 137 <scope>test</scope> 138 </dependency> 139 <dependency> 140 <groupId>com.google.guava</groupId> 141 <artifactId>guava-testlib</artifactId> 142 <version>${guava.version}</version> 143 <scope>test</scope> 144 </dependency> 145 <dependency> 146 <groupId>com.google.auto.value</groupId> 147 <artifactId>auto-value-annotations</artifactId> 148 <version>1.9</version> 149 <scope>provided</scope> 150 </dependency> 151 <dependency> 152 <groupId>com.google.auto</groupId> 153 <artifactId>auto-common</artifactId> 154 <version>1.2.1</version> 155 <scope>test</scope> 156 </dependency> 157 </dependencies> 158 159 <build> 160 <sourceDirectory>java</sourceDirectory> 161 <testSourceDirectory>javatests</testSourceDirectory> 162 <testResources> 163 <testResource> 164 <directory>javatests</directory> 165 <includes> 166 <include>**/testdata/**</include> 167 <include>**/moduletestdata/**</include> 168 </includes> 169 </testResource> 170 </testResources> 171 <extensions> 172 <extension> 173 <groupId>kr.motd.maven</groupId> 174 <artifactId>os-maven-plugin</artifactId> 175 <version>1.7.0</version> 176 </extension> 177 </extensions> 178 <plugins> 179 <plugin> 180 <groupId>org.apache.maven.plugins</groupId> 181 <artifactId>maven-compiler-plugin</artifactId> 182 <version>3.9.0</version> 183 <configuration> 184 <source>16</source> 185 <target>16</target> 186 <encoding>UTF-8</encoding> 187 <compilerArgs> 188 <arg>-parameters</arg> 189 <arg>-XDcompilePolicy=simple</arg> 190 <arg>--should-stop=ifError=FLOW</arg> 191 <arg>-Xplugin:ErrorProne -Xep:EqualsIncompatibleType:ERROR -Xep:TruthIncompatibleType:ERROR</arg> 192 </compilerArgs> 193 <annotationProcessorPaths> 194 <path> 195 <groupId>com.google.errorprone</groupId> 196 <artifactId>error_prone_core</artifactId> 197 <version>${errorprone.version}</version> 198 </path> 199 <path> 200 <groupId>com.google.auto.value</groupId> 201 <artifactId>auto-value</artifactId> 202 <version>1.7.4</version> 203 </path> 204 </annotationProcessorPaths> 205 </configuration> 206 <executions> 207 <execution> 208 <id>default-testCompile</id> 209 <phase>test-compile</phase> 210 <goals> 211 <goal>testCompile</goal> 212 </goals> 213 <configuration> 214 <compilerArgs combine.children="append"> 215 <arg>--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg> 216 <arg>--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg> 217 <arg>--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg> 218 <arg>--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg> 219 </compilerArgs> 220 </configuration> 221 </execution> 222 </executions> 223 </plugin> 224 <plugin> 225 <groupId>org.xolstice.maven.plugins</groupId> 226 <artifactId>protobuf-maven-plugin</artifactId> 227 <version>0.6.1</version> 228 <configuration> 229 <protoSourceRoot>proto</protoSourceRoot> 230 <protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact> 231 <pluginId>grpc-java</pluginId> 232 <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact> 233 </configuration> 234 <executions> 235 <execution> 236 <goals> 237 <goal>compile</goal> 238 <goal>compile-custom</goal> 239 </goals> 240 </execution> 241 </executions> 242 </plugin> 243 <plugin> 244 <groupId>org.apache.maven.plugins</groupId> 245 <artifactId>maven-surefire-plugin</artifactId> 246 <version>2.22.2</version> 247 <configuration> 248 <!-- set heap size to work around http://github.com/travis-ci/travis-ci/issues/3396 --> 249 <argLine> 250 -Xmx2g 251 --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED 252 --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED 253 --add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED 254 --add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED 255 --add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED 256 --add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED 257 --add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED 258 --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED 259 --add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED 260 --add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED 261 </argLine> 262 </configuration> 263 </plugin> 264 <plugin> 265 <groupId>org.apache.maven.plugins</groupId> 266 <artifactId>maven-shade-plugin</artifactId> 267 <version>3.2.4</version> 268 <executions> 269 <execution> 270 <id>shade-all-deps</id> 271 <phase>package</phase> 272 <goals> 273 <goal>shade</goal> 274 </goals> 275 <configuration> 276 <shadedArtifactAttached>true</shadedArtifactAttached> 277 <shadedClassifierName>all-deps</shadedClassifierName> 278 <createDependencyReducedPom>false</createDependencyReducedPom> 279 <!-- http://stackoverflow.com/a/6743609 --> 280 <filters> 281 <filter> 282 <artifact>*:*</artifact> 283 <excludes> 284 <exclude>META-INF/*.SF</exclude> 285 <exclude>META-INF/*.DSA</exclude> 286 <exclude>META-INF/*.RSA</exclude> 287 </excludes> 288 </filter> 289 </filters> 290 </configuration> 291 </execution> 292 </executions> 293 </plugin> 294 <plugin> 295 <groupId>org.apache.maven.plugins</groupId> 296 <artifactId>maven-javadoc-plugin</artifactId> 297 <version>3.3.1</version> 298 <configuration> 299 <source>16</source> 300 <detectJavaApiLink>false</detectJavaApiLink> 301 <notimestamp>true</notimestamp> 302 <doctitle>turbine ${project.version} API</doctitle> 303 </configuration> 304 </plugin> 305 </plugins> 306 </build> 307 308 <distributionManagement> 309 <snapshotRepository> 310 <id>sonatype-nexus-snapshots</id> 311 <name>Sonatype Nexus Snapshots</name> 312 <url>https://oss.sonatype.org/content/repositories/snapshots/</url> 313 </snapshotRepository> 314 <repository> 315 <id>sonatype-nexus-staging</id> 316 <name>Nexus Release Repository</name> 317 <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> 318 </repository> 319 </distributionManagement> 320 321 <profiles> 322 <profile> 323 <id>sonatype-oss-release</id> 324 <build> 325 <plugins> 326 <plugin> 327 <groupId>org.apache.maven.plugins</groupId> 328 <artifactId>maven-source-plugin</artifactId> 329 <version>${maven-source-plugin.version}</version> 330 <executions> 331 <execution> 332 <id>attach-sources</id> 333 <goals> 334 <goal>jar-no-fork</goal> 335 </goals> 336 </execution> 337 </executions> 338 </plugin> 339 <plugin> 340 <groupId>org.apache.maven.plugins</groupId> 341 <artifactId>maven-javadoc-plugin</artifactId> 342 <version>${maven-javadoc-plugin.version}</version> 343 <executions> 344 <execution> 345 <id>attach-javadocs</id> 346 <goals> 347 <goal>jar</goal> 348 </goals> 349 </execution> 350 </executions> 351 </plugin> 352 <plugin> 353 <groupId>org.apache.maven.plugins</groupId> 354 <artifactId>maven-gpg-plugin</artifactId> 355 <version>3.0.1</version> 356 <executions> 357 <execution> 358 <id>sign-artifacts</id> 359 <phase>verify</phase> 360 <goals> 361 <goal>sign</goal> 362 </goals> 363 </execution> 364 </executions> 365 </plugin> 366 </plugins> 367 </build> 368 </profile> 369 <profile> 370 <id>native</id> 371 <build> 372 <plugins> 373 <plugin> 374 <groupId>org.graalvm.buildtools</groupId> 375 <artifactId>native-maven-plugin</artifactId> 376 <version>${native.maven.plugin.version}</version> 377 <extensions>true</extensions> 378 <executions> 379 <execution> 380 <id>build-native</id> 381 <goals> 382 <goal>build</goal> 383 </goals> 384 <phase>package</phase> 385 </execution> 386 <execution> 387 <id>test-native</id> 388 <goals> 389 <goal>test</goal> 390 </goals> 391 <phase>test</phase> 392 </execution> 393 </executions> 394 <configuration> 395 <imageName>turbine</imageName> 396 <mainClass>com.google.turbine.main.Main</mainClass> 397 <classpath> 398 <param>${project.build.directory}/${project.artifactId}-${project.version}-all-deps.jar</param> 399 </classpath> 400 <buildArgs> 401 <buildArg>--no-fallback</buildArg> 402 </buildArgs> 403 </configuration> 404 </plugin> 405 </plugins> 406 </build> 407 </profile> 408 </profiles> 409</project> 410