aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorronshapiro <ronshapiro@google.com>2018-03-09 10:44:45 -0800
committerRon Shapiro <shapiro.rd@gmail.com>2018-03-12 13:28:54 -0700
commit0c488d7f3a701d6947cd5e5cb28cf2c71d6b3424 (patch)
treef769a962827d593f65994cb6b0e283b14673defb
parent73e8eff9cba3838ec26aba5b1dca8f53f169b571 (diff)
downloadauto-0c488d7f3a701d6947cd5e5cb28cf2c71d6b3424.tar.gz
Create an auto-value-annotations artifact separate from the processor
Fixes https://github.com/google/auto/issues/268 I followed the instructions in https://maven.apache.org/guides/mini/guide-using-one-source-directory.html because it seemed like the easiest way forward without moving around any files. RELNOTES=`@AutoValue`, `@AutoAnnotation`, `@AutoOneOf`, and `@Memoized` are now in a separate artifact, `auto-value-annotations`. This allows users to specify the annotations in compile scope and the processor in an annotation processing scope, without leaking the processor to a release binary. To upgrade to this version of auto-value, you'll need to add this new artifact as a dependency. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=188505001
-rw-r--r--value/annotations/pom.xml75
-rw-r--r--value/pom.xml118
-rw-r--r--value/processor/pom.xml176
-rw-r--r--value/src/it/functional/pom.xml5
-rw-r--r--value/src/it/gwtserializer/pom.xml5
-rw-r--r--value/userguide/index.md16
6 files changed, 281 insertions, 114 deletions
diff --git a/value/annotations/pom.xml b/value/annotations/pom.xml
new file mode 100644
index 00000000..56d8c6a2
--- /dev/null
+++ b/value/annotations/pom.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2012 Google, Inc.
+
+ 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/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>com.google.auto</groupId>
+ <artifactId>auto-parent</artifactId>
+ <version>6</version>
+ </parent>
+
+ <groupId>com.google.auto.value</groupId>
+ <artifactId>auto-value-annotations</artifactId>
+ <version>HEAD-SNAPSHOT</version>
+ <name>AutoValue Annotations</name>
+ <description>
+ Immutable value-type code generation for Java 1.6+.
+ </description>
+
+ <scm>
+ <url>http://github.com/google/auto</url>
+ <connection>scm:git:git://github.com/google/auto.git</connection>
+ <developerConnection>scm:git:ssh://git@github.com/google/auto.git</developerConnection>
+ <tag>HEAD</tag>
+ </scm>
+ <build>
+ <sourceDirectory>../src/main/java</sourceDirectory>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>com/google/auto/value/*</include>
+ <include>com/google/auto/value/extension/memoized/*</include>
+ </includes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-invoker-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+ <profiles>
+ <profile>
+ <id>disable-java8-doclint</id>
+ <activation>
+ <jdk>[1.8,)</jdk>
+ </activation>
+ <properties>
+ <additionalparam>-Xdoclint:none</additionalparam>
+ </properties>
+ </profile>
+ </profiles>
+</project>
diff --git a/value/pom.xml b/value/pom.xml
index 5ee1e533..470d9a1a 100644
--- a/value/pom.xml
+++ b/value/pom.xml
@@ -25,12 +25,13 @@
</parent>
<groupId>com.google.auto.value</groupId>
- <artifactId>auto-value</artifactId>
+ <artifactId>auto-value-pom-aggregator</artifactId>
<version>HEAD-SNAPSHOT</version>
<name>AutoValue</name>
<description>
Immutable value-type code generation for Java 1.6+.
</description>
+ <packaging>pom</packaging>
<scm>
<url>http://github.com/google/auto</url>
@@ -39,123 +40,18 @@
<tag>HEAD</tag>
</scm>
- <dependencies>
- <dependency>
- <groupId>com.google.auto</groupId>
- <artifactId>auto-common</artifactId>
- <version>0.10</version>
- </dependency>
- <dependency>
- <groupId>com.google.auto.service</groupId>
- <artifactId>auto-service</artifactId>
- <version>1.0-rc4</version>
- </dependency>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- </dependency>
- <dependency>
- <groupId>com.squareup</groupId>
- <artifactId>javapoet</artifactId>
- </dependency>
- <!-- test dependencies -->
- <dependency>
- <groupId>org.apache.velocity</groupId>
- <artifactId>velocity</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava-testlib</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.google.truth</groupId>
- <artifactId>truth</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.google.testing.compile</groupId>
- <artifactId>compile-testing</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
+ <modules>
+ <module>annotations</module>
+ <module>processor</module>
+ </modules>
<build>
- <resources>
- <resource>
- <directory>src/main/java</directory>
- <includes>
- <include>**/*.vm</include>
- </includes>
- </resource>
- </resources>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- </plugin>
- <plugin>
+ <!-- Used to run the functional tests -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
</plugin>
- <plugin>
- <groupId>org.immutables.tools</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <minimizeJar>true</minimizeJar>
- <artifactSet>
- <excludes>
- <exclude>com.google.code.findbugs:jsr305</exclude>
- </excludes>
- </artifactSet>
- <relocations>
- <relocation>
- <pattern>org.objectweb</pattern>
- <shadedPattern>autovalue.shaded.org.objectweb$</shadedPattern>
- </relocation>
- <relocation>
- <pattern>com.google</pattern>
- <shadedPattern>autovalue.shaded.com.google$</shadedPattern>
- <excludes>
- <exclude>com.google.auto.value.**</exclude>
- </excludes>
- </relocation>
- <relocation>
- <pattern>com.squareup.javapoet</pattern>
- <shadedPattern>autovalue.shaded.com.squareup.javapoet$</shadedPattern>
- </relocation>
- </relocations>
- </configuration>
- </execution>
- </executions>
- </plugin>
</plugins>
</build>
- <profiles>
- <profile>
- <id>disable-java8-doclint</id>
- <activation>
- <jdk>[1.8,)</jdk>
- </activation>
- <properties>
- <additionalparam>-Xdoclint:none</additionalparam>
- </properties>
- </profile>
- </profiles>
</project>
diff --git a/value/processor/pom.xml b/value/processor/pom.xml
new file mode 100644
index 00000000..fb4fbc0d
--- /dev/null
+++ b/value/processor/pom.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2012 Google, Inc.
+
+ 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/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>com.google.auto</groupId>
+ <artifactId>auto-parent</artifactId>
+ <version>6</version>
+ </parent>
+
+ <groupId>com.google.auto.value</groupId>
+ <artifactId>auto-value</artifactId>
+ <version>HEAD-SNAPSHOT</version>
+ <name>AutoValue Processor</name>
+ <description>
+ Immutable value-type code generation for Java 1.6+.
+ </description>
+
+ <scm>
+ <url>http://github.com/google/auto</url>
+ <connection>scm:git:git://github.com/google/auto.git</connection>
+ <developerConnection>scm:git:ssh://git@github.com/google/auto.git</developerConnection>
+ <tag>HEAD</tag>
+ </scm>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.google.auto</groupId>
+ <artifactId>auto-common</artifactId>
+ <version>0.10</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.auto.service</groupId>
+ <artifactId>auto-service</artifactId>
+ <version>1.0-rc4</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.squareup</groupId>
+ <artifactId>javapoet</artifactId>
+ </dependency>
+ <!-- test dependencies -->
+ <dependency>
+ <groupId>com.google.auto.value</groupId>
+ <artifactId>auto-value-annotations</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.velocity</groupId>
+ <artifactId>velocity</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava-testlib</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.truth</groupId>
+ <artifactId>truth</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.testing.compile</groupId>
+ <artifactId>compile-testing</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <sourceDirectory>../src/main/java</sourceDirectory>
+ <testSourceDirectory>../src/test/java</testSourceDirectory>
+
+ <resources>
+ <resource>
+ <directory>../src/main/java</directory>
+ <includes>
+ <include>**/*.vm</include>
+ </includes>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>com/google/auto/value/processor/**/*.java</include>
+ <include>com/google/auto/value/extension/memoized/processor/**/*.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-invoker-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.immutables.tools</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <minimizeJar>true</minimizeJar>
+ <artifactSet>
+ <excludes>
+ <exclude>com.google.code.findbugs:jsr305</exclude>
+ </excludes>
+ </artifactSet>
+ <relocations>
+ <relocation>
+ <pattern>org.objectweb</pattern>
+ <shadedPattern>autovalue.shaded.org.objectweb$</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>com.google</pattern>
+ <shadedPattern>autovalue.shaded.com.google$</shadedPattern>
+ <excludes>
+ <exclude>com.google.auto.value.**</exclude>
+ </excludes>
+ </relocation>
+ <relocation>
+ <pattern>com.squareup.javapoet</pattern>
+ <shadedPattern>autovalue.shaded.com.squareup.javapoet$</shadedPattern>
+ </relocation>
+ </relocations>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <profiles>
+ <profile>
+ <id>disable-java8-doclint</id>
+ <activation>
+ <jdk>[1.8,)</jdk>
+ </activation>
+ <properties>
+ <additionalparam>-Xdoclint:none</additionalparam>
+ </properties>
+ </profile>
+ </profiles>
+</project>
diff --git a/value/src/it/functional/pom.xml b/value/src/it/functional/pom.xml
index 2b7bad42..9cec5ed1 100644
--- a/value/src/it/functional/pom.xml
+++ b/value/src/it/functional/pom.xml
@@ -28,6 +28,11 @@
<dependencies>
<dependency>
<groupId>com.google.auto.value</groupId>
+ <artifactId>auto-value-annotations</artifactId>
+ <version>@project.version@</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.auto.value</groupId>
<artifactId>auto-value</artifactId>
<version>@project.version@</version>
</dependency>
diff --git a/value/src/it/gwtserializer/pom.xml b/value/src/it/gwtserializer/pom.xml
index 67eb92e4..84333614 100644
--- a/value/src/it/gwtserializer/pom.xml
+++ b/value/src/it/gwtserializer/pom.xml
@@ -36,6 +36,11 @@
<dependencies>
<dependency>
<groupId>com.google.auto.value</groupId>
+ <artifactId>auto-value-annotations</artifactId>
+ <version>@project.version@</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.auto.value</groupId>
<artifactId>auto-value</artifactId>
<version>@project.version@</version>
<optional>true</optional>
diff --git a/value/userguide/index.md b/value/userguide/index.md
index 14817d1b..b337efd8 100644
--- a/value/userguide/index.md
+++ b/value/userguide/index.md
@@ -76,19 +76,29 @@ Maven users should add the following to the project's `pom.xml` file:
```xml
<dependency>
<groupId>com.google.auto.value</groupId>
+ <artifactId>auto-value-annotations</artifactId>
+ <version>1.6</version>
+</dependency>
+<dependency>
+ <groupId>com.google.auto.value</groupId>
<artifactId>auto-value</artifactId>
- <version>1.5</version>
+ <version>1.6</version>
<scope>provided</scope>
</dependency>
```
+Alternatively, instead of using the `provided` scope, you can add the second
+dependency to the
+[`annotationProcessorPaths`](https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#annotationProcessorPaths)
+section.
+
Gradle users should install the annotation processing plugin [as described in
these instructions][tbroyer-apt] and then use it in the `build.gradle` script:
```groovy
dependencies {
- compileOnly "com.google.auto.value:auto-value:1.5"
- apt "com.google.auto.value:auto-value:1.5"
+ compileOnly "com.google.auto.value:auto-value-annotations:1.6"
+ apt "com.google.auto.value:auto-value:1.6"
}
```