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