You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Peter Coder (JIRA)" <ji...@codehaus.org> on 2012/07/31 07:41:21 UTC
[jira] (MJAR-61) Manifest classpath ignores the "real" JAR
filenames specified in
[ https://jira.codehaus.org/browse/MJAR-61?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=305031#comment-305031 ]
Peter Coder commented on MJAR-61:
---------------------------------
I don't have a fix for this - there is a workaround though.
Version 2.4 of the Maven archiver (maven-archiver) uses by default a different approach to generating the classpath vs version 2.2.
maven-archiver version 2.2: uses artifact file name
maven-archiver version 2.4: uses a pattern that looks a bit like this:
${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}
.. which would give a classpath entry like this: TheJarFile-3.4-SNAPSHOT.jar
(N.B. maven-archiver version 2.2 is used by e.g. maven-ejb-plugin 2.1; maven-archiver 2.4 is used by e.g. maven-ejb-plugin 2.2 and 2.3)
The easiest way to construct your classpath entries using the <build><finalName> is to use the following configuration:
{code}
<plugin>
<artifactId>maven-ejb-plugin</artifactId>
<configuration>
<ejbVersion>3.0</ejbVersion>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathLayoutType>custom</classpathLayoutType>
<customClasspathLayout>$${artifact.file.name}</customClasspathLayout>
</manifest>
</archive>
</configuration>
</plugin>
{code}
The workaround for maven-jar-plugin and maven-war-plugin is the same.
> Manifest classpath ignores the "real" JAR filenames specified in <finalName>
> ----------------------------------------------------------------------------
>
> Key: MJAR-61
> URL: https://jira.codehaus.org/browse/MJAR-61
> Project: Maven 2.x JAR Plugin
> Issue Type: Bug
> Affects Versions: 2.1
> Reporter: Martin Desruisseaux
> Attachments: MJAR-61.zip
>
>
> The manifest classpath generated by Maven ignores the "real" JAR name as specified in {{<finalName>}}. For example the Geotools project tried the following configuration:
> {code:xml}
> <build>
> <finalName>gt-${artifactId}-${version}</finalName>
> {code}
> but the manifest classpath generated by Maven contains only {{${artifactId}-${version}.jar}} entries, which are non-existent JARs.
> *Note:* this problem happen only when the JAR dependencis come from the repository. The manifest classpath is correct if all dependencies were compiled in the same "{{mvn install}}" cycle. However this workaround is applicable only to Geotools developpers (in our case), because users of the Geotools library usually download the dependencies from a repository.
> This bug may be related to MJAR-28.
--
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