Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Critical
-
Resolution: Fixed
-
Affects Version/s: 2.0.6
-
Fix Version/s: 2.0.7
-
Component/s: dependencies task
-
Labels:None
-
Environment:java version "1.4.2_04", Linux 2.6.11.12, Apache Ant version 1.6.5
-
Testcase included:yes
-
Patch Submitted:Yes
-
Number of attachments :
Description
In the artifact:dependencies task the filesetId is only correctly set, when the artifact was installed locally before running ant.
After deletion of the local repository the dependant artifacts will be downloaded to the local repository, but only one of two dependant files will be included in the ant fileset. The classpath is set correctly.
After running "mvn install" locally for the "as-base-launcher" maven project, ant computes the correct filesetId.
The ant-project depends on the artifact "as-base-launcher" which itselfs depends only on classworlds. Snippets from ant buildfiles, poms and ant output follows:
From the ant buildfile:
<target name="launcherJAR" depends="init">
<artifact:pom id="as-base.project" file="../poms/as-base.xml" />
<artifact:dependencies filesetId="as-launcher.fileset" pathId="as-launcher.classpath" verbose="true">
<pom refid="as-base.project"/>
<remoteRepository refid="actisRepository" />
</artifact:dependencies>
<pathconvert property="mypath" targetos="unix">
<path>
<path refid="as-launcher.classpath" />
</path>
</pathconvert>
<echo message="CLASSPATH: ${mypath}"/>
<pathconvert property="myset" targetos="unix">
<path>
<fileset refid="as-launcher.fileset"/>
</path>
</pathconvert>
<echo message="FILESET: ${myset}"/>
</target>
The referenced POM defining the ant dependencies:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>actis</groupId>
<artifactId>ant-as-base</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>actis</groupId>
<artifactId>as-base-launcher</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>actisRepository</id>
<name>actisRepository</name>
<url>http://company.com:9999/repository/</url>
</repository>
</repositories>
</project>
Output of the ant run:
launcherJAR:
actis:ant-as-base:jar:1.0-SNAPSHOT (selected)
actis:as-base-launcher:jar:1.0-SNAPSHOT (selected)
classworlds:classworlds:jar:1.1-alpha-1 (selected)
[echo] CLASSPATH: /home/iwe/.m2/repository/classworlds/classworlds/1.1-alpha-1/classworlds-1.1-alpha-1.jar:/home/iwe/.m2/repository/actis/as-base-launcher/1.0-20051103.102305-8/as-base-launcher-1.0-20051103.102305-8.jar
[echo] FILESET: /home/iwe/.m2/repository/classworlds/classworlds/1.1-alpha-1/classworlds-1.1-alpha-1.jar
Attachments
Issue Links
| This issue is duplicated by: | ||||
| MANTTASKS-137 | <dependencies> task gives a bad pathId when downloading a deployed SNAPSHOT |
|
|
|
| MANTTASKS-68 | artifact:depencies doesnt work with Snapshot |
|
|
|
| MANTTASKS-1 | dependencies ant task incorrectly handles transitive snapshot dependencies |
|
|
|
| This issue relates to: | ||||
| MANTTASKS-1 | dependencies ant task incorrectly handles transitive snapshot dependencies |
|
|
|
| This issue is related to: | ||||
| MNG-2961 | DefaultArtifact getBaseVersion is changed to "xxxx-SNAPSHOT" only if you first call isSnapshot() |
|
|
|
I've had this problem too. Here's what i've found:
Line 207 of DependenciesTask: filename = localRepo.pathOf(artifact)
Returns (in my case):
orange-portal/search-service/1.0-20051107.144552-1/search-service-1.0-20051107.144552-1.jar
However the location of the jar that has been downloaded by the resolver is:
orange-portal/search-service/1.0-SNAPSHOT/search-service-1.0-20051107.144552-1.jar