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 <[email protected]> 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
