The following comment has been added to this issue:
Author: Vincent Massol
Created: Tue, 1 Jul 2003 4:52 PM
Body:
I've always been using ${pom.dependencies} and I've never had a single problem (and I
never use a type for jar artifacts). Are you really sure?
Thanks
-Vincent
---------------------------------------------------------------------
View the issue:
http://jira.codehaus.org/secure/ViewIssue.jspa?key=MAVEN-518
Here is an overview of the issue:
---------------------------------------------------------------------
Key: MAVEN-518
Summary: plugins guess filename from 'dependency', should use 'artifact'
Type: Bug
Status: Unassigned
Priority: Major
Time Spent: Unknown
Estimate: 0 minutes
Project: maven
Assignee:
Reporter: Brian Ewins
Created: Tue, 24 Jun 2003 9:49 AM
Updated: Tue, 24 Jun 2003 9:49 AM
Description:
Quite a few plugins are mistakenly referring to and looping over dependencies when
they mean to use artifacts. For example this code in the war plugin:
<j:forEach var="dep" items="${pom.dependencies}">
<j:if test="${dep.getProperty('war.bundle.jar')=='true'}">
<lib dir="${maven.repo.local}/${dep.artifactDirectory}/jars/">
<include name="${dep.artifact}"/>
</lib>
</j:if>
</j:forEach>
Will not work if the 'jar' element has been used to override the filename of a
dependency. In maven Artifacts know their filename, Dependencies don't. You can
navigate from an Artifact to a Dependency if required, so that one fix might look like:
<j:forEach var="lib" items="${pom.artifacts}">
<j:set var="dep" value="${lib.dependency}"/>
<j:if test="${dep.getProperty('war.bundle.jar')=='true'}">
<lib dir="${maven.repo.local}">
<include name="${lib.path}"/>
</lib>
</j:if>
</j:forEach>
While this removes all knowledge of the internal structure of the local repo from the
plugin, it is still not ideal. If a project is allowed to depend on jars that are
outside the local repository via the jar override mechanism then plugins should not
use 'maven.repo.local' either.
To find these issues in the plugins, go to the plugins-build directory and do:
$ find . -name '*.jelly' | xargs grep pom.dependencies
(NB the gump and release plugins are listed by this but are not affected)
also do:
$ find . -name '*.jelly' | xargs grep maven.repo.local
the second set will pick out most of the first set of problems, but will also find the
occasional case where an individual dependency is misused.
The following files are known to be affected by this bug:
./ant/plugin.jelly
./deploy/plugin.jelly
./ear/plugin.jelly
./ejb/plugin.jelly
./idea/plugin.jelly
./jboss/plugin.jelly
./jdeveloper/plugin.jelly
./jnlp/plugin.jelly
./uberjar/plugin.jelly
./war/plugin.jelly
(Patch to follow)
---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/Administrators.jspa
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]