You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Dennis Lundberg (JIRA)" <ji...@codehaus.org> on 2012/10/25 08:31:15 UTC

[jira] (MASSEMBLY-576) addClasspath broken in new single goal

     [ https://jira.codehaus.org/browse/MASSEMBLY-576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dennis Lundberg updated MASSEMBLY-576:
--------------------------------------

    Description: 
According to the documentation, using <addClasspath>true</addClasspath> in archive/manifest, should place the generated classpath in to the manifest.  This works with assembly:assembly (now deprecated), but is broken in assembly:single

Here is my plugin definition section:
{code:xml}
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <descriptors>
            <descriptor>src/main/assembly/assembly.xml</descriptor>
        </descriptors>
        <archive>
            <manifest>
                <mainClass>com.example.Main</mainClass>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
            </manifest>
        </archive>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>
{code}

and the custom assembly file:
{code:xml}
<assembly>
    <id>full</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <unpack>false</unpack>
            <scope>runtime</scope>
            <useProjectArtifact>true</useProjectArtifact>
            <outputDirectory>lib/</outputDirectory>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>${project.build.outputDirectory}</directory>
            <outputDirectory>/</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>
{code}

I'm not sure if this is just because the documentation does not correctly address how to do this or if it is actually just broken.  I did check the docs and this is how the docs claim you should be able to do this.

  was:
According to the documentation, using <addClasspath>true</addClasspath> in archive/manifest, should place the generated classpath in to the manifest.  This works with assembly:assembly (now deprecated), but is broken in assembly:single

Here is my plugin definition section:
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <descriptors>
            <descriptor>src/main/assembly/assembly.xml</descriptor>
        </descriptors>
        <archive>
            <manifest>
                <mainClass>com.example.Main</mainClass>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
            </manifest>
        </archive>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

and the custom assembly file:
<assembly>
    <id>full</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <unpack>false</unpack>
            <scope>runtime</scope>
            <useProjectArtifact>true</useProjectArtifact>
            <outputDirectory>lib/</outputDirectory>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>${project.build.outputDirectory}</directory>
            <outputDirectory>/</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>

I'm not sure if this is just because the documentation does not correctly address how to do this or if it is actually just broken.  I did check the docs and this is how the docs claim you should be able to do this.

    
> addClasspath broken in new single goal
> --------------------------------------
>
>                 Key: MASSEMBLY-576
>                 URL: https://jira.codehaus.org/browse/MASSEMBLY-576
>             Project: Maven 2.x Assembly Plugin
>          Issue Type: Bug
>    Affects Versions: 2.2.1
>         Environment: Maven 3.0.3
> Ubuntu 11.04
> Sun java 6 (1.6.0_26)
>            Reporter: James Davis
>            Priority: Blocker
>
> According to the documentation, using <addClasspath>true</addClasspath> in archive/manifest, should place the generated classpath in to the manifest.  This works with assembly:assembly (now deprecated), but is broken in assembly:single
> Here is my plugin definition section:
> {code:xml}
> <plugin>
>     <groupId>org.apache.maven.plugins</groupId>
>     <artifactId>maven-assembly-plugin</artifactId>
>     <configuration>
>         <descriptors>
>             <descriptor>src/main/assembly/assembly.xml</descriptor>
>         </descriptors>
>         <archive>
>             <manifest>
>                 <mainClass>com.example.Main</mainClass>
>                 <addClasspath>true</addClasspath>
>                 <classpathPrefix>lib/</classpathPrefix>
>             </manifest>
>         </archive>
>     </configuration>
>     <executions>
>         <execution>
>             <phase>package</phase>
>             <goals>
>                 <goal>single</goal>
>             </goals>
>         </execution>
>     </executions>
> </plugin>
> {code}
> and the custom assembly file:
> {code:xml}
> <assembly>
>     <id>full</id>
>     <formats>
>         <format>jar</format>
>     </formats>
>     <includeBaseDirectory>false</includeBaseDirectory>
>     <dependencySets>
>         <dependencySet>
>             <unpack>false</unpack>
>             <scope>runtime</scope>
>             <useProjectArtifact>true</useProjectArtifact>
>             <outputDirectory>lib/</outputDirectory>
>         </dependencySet>
>     </dependencySets>
>     <fileSets>
>         <fileSet>
>             <directory>${project.build.outputDirectory}</directory>
>             <outputDirectory>/</outputDirectory>
>         </fileSet>
>     </fileSets>
> </assembly>
> {code}
> I'm not sure if this is just because the documentation does not correctly address how to do this or if it is actually just broken.  I did check the docs and this is how the docs claim you should be able to do this.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira