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>0.1</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.5</asm.version> 34 <guava.version>32.1.1-jre</guava.version> 35 <errorprone.version>2.16</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.19.2</protobuf.version> 40 <grpc.version>1.43.2</grpc.version> 41 <native.maven.plugin.version>0.9.23</native.maven.plugin.version> 42 </properties> 43 44 <organization> 45 <name>Google Inc.</name> 46 <url>http://www.google.com/</url> 47 </organization> 48 49 <developers> 50 <developer> 51 <name>Liam Miller-Cushon</name> 52 </developer> 53 </developers> 54 55 <scm> 56 <connection>scm:git:https://github.com/google/turbine.git</connection> 57 <developerConnection>scm:git:git@github.com:google/turbine.git</developerConnection> 58 <url>https://github.com/google/turbine</url> 59 </scm> 60 61 <licenses> 62 <license> 63 <name>Apache 2.0</name> 64 <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> 65 </license> 66 </licenses> 67 68 <dependencies> 69 <dependency> 70 <groupId>com.google.guava</groupId> 71 <artifactId>guava</artifactId> 72 <version>${guava.version}</version> 73 </dependency> 74 <dependency> 75 <groupId>com.google.errorprone</groupId> 76 <artifactId>error_prone_annotations</artifactId> 77 <version>${errorprone.version}</version> 78 </dependency> 79 <dependency> 80 <groupId>org.jspecify</groupId> 81 <artifactId>jspecify</artifactId> 82 <version>0.2.0</version> 83 <optional>true</optional> 84 </dependency> 85 <dependency> 86 <groupId>com.google.protobuf</groupId> 87 <artifactId>protobuf-java</artifactId> 88 <version>${protobuf.version}</version> 89 </dependency> 90 <dependency> 91 <groupId>org.ow2.asm</groupId> 92 <artifactId>asm</artifactId> 93 <version>${asm.version}</version> 94 <scope>test</scope> 95 </dependency> 96 <dependency> 97 <groupId>org.ow2.asm</groupId> 98 <artifactId>asm-tree</artifactId> 99 <version>${asm.version}</version> 100 <scope>test</scope> 101 </dependency> 102 <dependency> 103 <groupId>org.ow2.asm</groupId> 104 <artifactId>asm-util</artifactId> 105 <version>${asm.version}</version> 106 <scope>test</scope> 107 </dependency> 108 <dependency> 109 <groupId>junit</groupId> 110 <artifactId>junit</artifactId> 111 <version>4.13.2</version> 112 <scope>test</scope> 113 </dependency> 114 <dependency> 115 <groupId>com.google.truth</groupId> 116 <artifactId>truth</artifactId> 117 <version>1.1.3</version> 118 <scope>test</scope> 119 </dependency> 120 <dependency> 121 <groupId>com.google.truth.extensions</groupId> 122 <artifactId>truth-proto-extension</artifactId> 123 <version>1.1.3</version> 124 <scope>test</scope> 125 </dependency> 126 <dependency> 127 <groupId>com.google.truth.extensions</groupId> 128 <artifactId>truth-java8-extension</artifactId> 129 <version>1.1.3</version> 130 <scope>test</scope> 131 </dependency> 132 <dependency> 133 <groupId>com.google.jimfs</groupId> 134 <artifactId>jimfs</artifactId> 135 <version>1.2</version> 136 <scope>test</scope> 137 </dependency> 138 <dependency> 139 <groupId>com.google.guava</groupId> 140 <artifactId>guava-testlib</artifactId> 141 <version>${guava.version}</version> 142 <scope>test</scope> 143 </dependency> 144 <dependency> 145 <groupId>com.google.auto.value</groupId> 146 <artifactId>auto-value-annotations</artifactId> 147 <version>1.9</version> 148 <scope>provided</scope> 149 </dependency> 150 <dependency> 151 <groupId>com.google.auto</groupId> 152 <artifactId>auto-common</artifactId> 153 <version>1.2.1</version> 154 <scope>test</scope> 155 </dependency> 156 </dependencies> 157 158 <build> 159 <sourceDirectory>java</sourceDirectory> 160 <testSourceDirectory>javatests</testSourceDirectory> 161 <testResources> 162 <testResource> 163 <directory>javatests</directory> 164 <includes> 165 <include>**/testdata/**</include> 166 <include>**/moduletestdata/**</include> 167 </includes> 168 </testResource> 169 </testResources> 170 <extensions> 171 <extension> 172 <groupId>kr.motd.maven</groupId> 173 <artifactId>os-maven-plugin</artifactId> 174 <version>1.7.0</version> 175 </extension> 176 </extensions> 177 <plugins> 178 <plugin> 179 <groupId>org.apache.maven.plugins</groupId> 180 <artifactId>maven-compiler-plugin</artifactId> 181 <version>3.9.0</version> 182 <configuration> 183 <source>8</source> 184 <target>8</target> 185 <encoding>UTF-8</encoding> 186 <compilerArgs> 187 <arg>-parameters</arg> 188 <arg>-XDcompilePolicy=simple</arg> 189 <arg>-Xplugin:ErrorProne</arg> 190 </compilerArgs> 191 <annotationProcessorPaths> 192 <path> 193 <groupId>com.google.errorprone</groupId> 194 <artifactId>error_prone_core</artifactId> 195 <version>${errorprone.version}</version> 196 </path> 197 <path> 198 <groupId>com.google.auto.value</groupId> 199 <artifactId>auto-value</artifactId> 200 <version>1.7.4</version> 201 </path> 202 </annotationProcessorPaths> 203 </configuration> 204 </plugin> 205 <plugin> 206 <groupId>org.xolstice.maven.plugins</groupId> 207 <artifactId>protobuf-maven-plugin</artifactId> 208 <version>0.6.1</version> 209 <configuration> 210 <protoSourceRoot>proto</protoSourceRoot> 211 <protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact> 212 <pluginId>grpc-java</pluginId> 213 <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact> 214 </configuration> 215 <executions> 216 <execution> 217 <goals> 218 <goal>compile</goal> 219 <goal>compile-custom</goal> 220 </goals> 221 </execution> 222 </executions> 223 </plugin> 224 <plugin> 225 <groupId>org.apache.maven.plugins</groupId> 226 <artifactId>maven-surefire-plugin</artifactId> 227 <version>2.22.2</version> 228 <configuration> 229 <!-- set heap size to work around http://github.com/travis-ci/travis-ci/issues/3396 --> 230 <argLine> 231 -Xmx2g 232 --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED 233 --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED 234 --add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED 235 --add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED 236 --add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED 237 --add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED 238 --add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED 239 --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED 240 --add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED 241 --add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED 242 </argLine> 243 </configuration> 244 </plugin> 245 <plugin> 246 <groupId>org.apache.maven.plugins</groupId> 247 <artifactId>maven-shade-plugin</artifactId> 248 <version>3.2.4</version> 249 <executions> 250 <execution> 251 <id>shade-all-deps</id> 252 <phase>package</phase> 253 <goals> 254 <goal>shade</goal> 255 </goals> 256 <configuration> 257 <shadedArtifactAttached>true</shadedArtifactAttached> 258 <shadedClassifierName>all-deps</shadedClassifierName> 259 <createDependencyReducedPom>false</createDependencyReducedPom> 260 <!-- http://stackoverflow.com/a/6743609 --> 261 <filters> 262 <filter> 263 <artifact>*:*</artifact> 264 <excludes> 265 <exclude>META-INF/*.SF</exclude> 266 <exclude>META-INF/*.DSA</exclude> 267 <exclude>META-INF/*.RSA</exclude> 268 </excludes> 269 </filter> 270 </filters> 271 </configuration> 272 </execution> 273 </executions> 274 </plugin> 275 <plugin> 276 <groupId>org.apache.maven.plugins</groupId> 277 <artifactId>maven-javadoc-plugin</artifactId> 278 <version>3.3.1</version> 279 <configuration> 280 <source>8</source> 281 <detectJavaApiLink>false</detectJavaApiLink> 282 <notimestamp>true</notimestamp> 283 <doctitle>turbine ${project.version} API</doctitle> 284 </configuration> 285 </plugin> 286 </plugins> 287 </build> 288 289 <distributionManagement> 290 <snapshotRepository> 291 <id>sonatype-nexus-snapshots</id> 292 <name>Sonatype Nexus Snapshots</name> 293 <url>https://oss.sonatype.org/content/repositories/snapshots/</url> 294 </snapshotRepository> 295 <repository> 296 <id>sonatype-nexus-staging</id> 297 <name>Nexus Release Repository</name> 298 <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> 299 </repository> 300 </distributionManagement> 301 302 <profiles> 303 <profile> 304 <id>sonatype-oss-release</id> 305 <build> 306 <plugins> 307 <plugin> 308 <groupId>org.apache.maven.plugins</groupId> 309 <artifactId>maven-source-plugin</artifactId> 310 <version>${maven-source-plugin.version}</version> 311 <executions> 312 <execution> 313 <id>attach-sources</id> 314 <goals> 315 <goal>jar-no-fork</goal> 316 </goals> 317 </execution> 318 </executions> 319 </plugin> 320 <plugin> 321 <groupId>org.apache.maven.plugins</groupId> 322 <artifactId>maven-javadoc-plugin</artifactId> 323 <version>${maven-javadoc-plugin.version}</version> 324 <executions> 325 <execution> 326 <id>attach-javadocs</id> 327 <goals> 328 <goal>jar</goal> 329 </goals> 330 </execution> 331 </executions> 332 </plugin> 333 <plugin> 334 <groupId>org.apache.maven.plugins</groupId> 335 <artifactId>maven-gpg-plugin</artifactId> 336 <version>3.0.1</version> 337 <executions> 338 <execution> 339 <id>sign-artifacts</id> 340 <phase>verify</phase> 341 <goals> 342 <goal>sign</goal> 343 </goals> 344 </execution> 345 </executions> 346 </plugin> 347 </plugins> 348 </build> 349 </profile> 350 <profile> 351 <id>native</id> 352 <build> 353 <plugins> 354 <plugin> 355 <groupId>org.graalvm.buildtools</groupId> 356 <artifactId>native-maven-plugin</artifactId> 357 <version>${native.maven.plugin.version}</version> 358 <extensions>true</extensions> 359 <executions> 360 <execution> 361 <id>build-native</id> 362 <goals> 363 <goal>build</goal> 364 </goals> 365 <phase>package</phase> 366 </execution> 367 <execution> 368 <id>test-native</id> 369 <goals> 370 <goal>test</goal> 371 </goals> 372 <phase>test</phase> 373 </execution> 374 </executions> 375 <configuration> 376 <imageName>turbine</imageName> 377 <mainClass>com.google.turbine.main.Main</mainClass> 378 <classpath> 379 <param>${project.build.directory}/${project.artifactId}-${project.version}-all-deps.jar</param> 380 </classpath> 381 <buildArgs> 382 <buildArg>--no-fallback</buildArg> 383 </buildArgs> 384 </configuration> 385 </plugin> 386 </plugins> 387 </build> 388 </profile> 389 </profiles> 390</project> 391