You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Carlos Bribiescas <cb...@gmail.com> on 2015/01/14 21:38:26 UTC
Help with this question
I'm setting up our system to do dual building for different versions of
java artifacts based on the jdk used. There are 4 jars to build: artifact,
artifact-tests, artifact-sources, and artifact-test-sources. Here is the
output of the build
[INFO] Installing
/Users/carlos/workspace/svn/Libraries/artifact-name/trunk/pom.xml to
/Users/carlos/.m2/repository/package-path/artifact-name/1.0.8-SNAPSHOT/artifact-name-1.0.8-SNAPSHOT.pom[INFO]
Installing /Users/carlos/workspace/svn/Libraries/path/artifact-name-1.0.8-SNAPSHOT-java6.jar
to /Users/carlos/.m2/repository/package-path/artifact-name/1.0.8-SNAPSHOT/artifact-name-1.0.8-SNAPSHOT-java6.jar[INFO]
Installing /Users/carlos/workspace/svn/Libraries/path/artifact-name-1.0.8-SNAPSHOT-sources.jar
to /Users/carlos/.m2/repository/package-path/artifact-name/1.0.8-SNAPSHOT/artifact-name-1.0.8-SNAPSHOT-sources.jar[INFO]
Installing /Users/carlos/workspace/svn/Libraries/path/artifact-name-1.0.8-SNAPSHOT-test-sources.jar
to /Users/carlos/.m2/repository/package-path/artifact-name/1.0.8-SNAPSHOT/artifact-name-1.0.8-SNAPSHOT-test-sources.jar[INFO]
Installing /Users/carlos/workspace/svn/Libraries/path/artifact-name-1.0.8-SNAPSHOT-tests.jar
to /Users/carlos/.m2/repository/package-path/artifact-name/1.0.8-SNAPSHOT/artifact-name-1.0.8-SNAPSHOT-tests.jar
You can see the main artifact is built with java6 and has the appropriate
classifier. However at a glance me its unclear if the tests are built with
java6 or java7. I'm assuming the tests classifier is overwriting the java6
classifier, but I'm unsure. Is there a way to get it to be named explicitly
for both tests and the jdk? Something like -1.0.8-SNAPSHOT-tests-java6.jar.
I'de like to refrain from doing manual changes to the final.name if
possible and just use stock functionality like I did for the main artifact.
Here are the relevant parts of the pom.
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven.jar.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven.source.version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<id>analyze</id>
<goals>
<goal>analyze-only</goal>
</goals>
<configuration>
<failOnWarning>true</failOnWarning>
<ignoreNonCompile>true</ignoreNonCompile>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.4</version>
<!--<configuration>-->
<!--<skip>true</skip>-->
<!--</configuration>-->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<classifier>${jdk.version.display}</classifier>
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins></build><profiles>
<profile>
<id>java6</id>
<activation>
<activeByDefault>false</activeByDefault>
<jdk>1.6</jdk>
</activation>
<properties>
<jdk.version>1.6</jdk.version>
<jdk.version.display>java6</jdk.version.display>
</properties>
</profile>
<profile>
<id>java7</id>
<activation>
<activeByDefault>false</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<jdk.version>1.7</jdk.version>
<jdk.version.display>java7</jdk.version.display>
</properties>
</profile>
<profile>
<id>java8</id>
<activation>
<activeByDefault>false</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<jdk.version>1.8</jdk.version>
<jdk.version.display>java8</jdk.version.display>
</properties>
</profile></profiles>
Link to question on stack overflow
<http://stackoverflow.com/questions/27947373/ensure-test-jars-are-named-correctly>
Re: Help with this question
Posted by Adrien Rivard <ad...@gmail.com>.
Hi,
test-jar goal does'nt seems to have a classifier configuration property so
it's probably why it does'nt work.
You probably will have to use finalName.
On Wed, Jan 14, 2015 at 9:38 PM, Carlos Bribiescas <cb...@gmail.com>
wrote:
> I'm setting up our system to do dual building for different versions of
> java artifacts based on the jdk used. There are 4 jars to build: artifact,
> artifact-tests, artifact-sources, and artifact-test-sources. Here is the
> output of the build
>
> [INFO] Installing
> /Users/carlos/workspace/svn/Libraries/artifact-name/trunk/pom.xml to
>
> /Users/carlos/.m2/repository/package-path/artifact-name/1.0.8-SNAPSHOT/artifact-name-1.0.8-SNAPSHOT.pom[INFO]
> Installing
> /Users/carlos/workspace/svn/Libraries/path/artifact-name-1.0.8-SNAPSHOT-java6.jar
> to
> /Users/carlos/.m2/repository/package-path/artifact-name/1.0.8-SNAPSHOT/artifact-name-1.0.8-SNAPSHOT-java6.jar[INFO]
> Installing
> /Users/carlos/workspace/svn/Libraries/path/artifact-name-1.0.8-SNAPSHOT-sources.jar
> to
> /Users/carlos/.m2/repository/package-path/artifact-name/1.0.8-SNAPSHOT/artifact-name-1.0.8-SNAPSHOT-sources.jar[INFO]
> Installing
> /Users/carlos/workspace/svn/Libraries/path/artifact-name-1.0.8-SNAPSHOT-test-sources.jar
> to
> /Users/carlos/.m2/repository/package-path/artifact-name/1.0.8-SNAPSHOT/artifact-name-1.0.8-SNAPSHOT-test-sources.jar[INFO]
> Installing
> /Users/carlos/workspace/svn/Libraries/path/artifact-name-1.0.8-SNAPSHOT-tests.jar
> to
> /Users/carlos/.m2/repository/package-path/artifact-name/1.0.8-SNAPSHOT/artifact-name-1.0.8-SNAPSHOT-tests.jar
>
> You can see the main artifact is built with java6 and has the appropriate
> classifier. However at a glance me its unclear if the tests are built with
> java6 or java7. I'm assuming the tests classifier is overwriting the java6
> classifier, but I'm unsure. Is there a way to get it to be named explicitly
> for both tests and the jdk? Something like -1.0.8-SNAPSHOT-tests-java6.jar.
> I'de like to refrain from doing manual changes to the final.name if
> possible and just use stock functionality like I did for the main artifact.
>
> Here are the relevant parts of the pom.
>
> <build>
> <pluginManagement>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-jar-plugin</artifactId>
> <version>${maven.jar.version}</version>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-compiler-plugin</artifactId>
> <version>${maven.compiler.version}</version>
> <configuration>
> <source>${jdk.version}</source>
> <target>${jdk.version}</target>
> <forceJavacCompilerUse>true</forceJavacCompilerUse>
> </configuration>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-source-plugin</artifactId>
> <version>${maven.source.version}</version>
> </plugin>
> </plugins>
> </pluginManagement>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-dependency-plugin</artifactId>
> <version>2.9</version>
> <executions>
> <execution>
> <id>analyze</id>
> <goals>
> <goal>analyze-only</goal>
> </goals>
> <configuration>
> <failOnWarning>true</failOnWarning>
> <ignoreNonCompile>true</ignoreNonCompile>
> </configuration>
> </execution>
> </executions>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-deploy-plugin</artifactId>
> <version>2.4</version>
> <!--<configuration>-->
> <!--<skip>true</skip>-->
> <!--</configuration>-->
> </plugin>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-compiler-plugin</artifactId>
> <configuration>
> <source>${jdk.version}</source>
> <target>${jdk.version}</target>
> </configuration>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-source-plugin</artifactId>
> <executions>
> <execution>
> <goals>
> <goal>jar</goal>
> <goal>test-jar</goal>
> </goals>
> </execution>
> </executions>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-jar-plugin</artifactId>
> <configuration>
> <classifier>${jdk.version.display}</classifier>
> </configuration>
> <executions>
> <execution>
> <goals>
> <goal>test-jar</goal>
> </goals>
> </execution>
> </executions>
> </plugin>
> </plugins></build><profiles>
> <profile>
> <id>java6</id>
> <activation>
> <activeByDefault>false</activeByDefault>
> <jdk>1.6</jdk>
> </activation>
> <properties>
> <jdk.version>1.6</jdk.version>
> <jdk.version.display>java6</jdk.version.display>
> </properties>
> </profile>
> <profile>
> <id>java7</id>
> <activation>
> <activeByDefault>false</activeByDefault>
> <jdk>1.7</jdk>
> </activation>
> <properties>
> <jdk.version>1.7</jdk.version>
> <jdk.version.display>java7</jdk.version.display>
> </properties>
> </profile>
> <profile>
> <id>java8</id>
> <activation>
> <activeByDefault>false</activeByDefault>
> <jdk>1.8</jdk>
> </activation>
> <properties>
> <jdk.version>1.8</jdk.version>
> <jdk.version.display>java8</jdk.version.display>
> </properties>
> </profile></profiles>
>
> Link to question on stack overflow
> <
> http://stackoverflow.com/questions/27947373/ensure-test-jars-are-named-correctly
> >
>
--
Adrien Rivard