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