James Wennmacher created MANTTASKS-246:
------------------------------------------
Summary: mvn ant task uses <repositories> exclusively in fetched
pom.xml and does not look in maven central, can store HTTP 301 Moved
Permanently html response in pom.xml
Key: MANTTASKS-246
URL: https://jira.codehaus.org/browse/MANTTASKS-246
Project: Maven Ant Tasks
Issue Type: Bug
Affects Versions: 2.1.3
Reporter: James Wennmacher
Attachments: anttest.zip, ehcache-web-parent-2.0.4.pom
When mvn ant task fetches an artifact that has a parent and the artifact
contains a <repositories> element in its pom.xml, the parent is fetched
exclusively from the repositories listed in the repositories element and not
maven central.
This is different from how maven works when run from the command-line. From the
command-line, all repositories are fetched from maven central by default and
transitive dependencies are not fetched from the repositories listed in a
fetched artifacts's pom.xml.
Specific case in point, see attached project zip file.
1. Insure your ~/.m2/repository/net/sf/ehcache is empty
2. run mvn package. You see
...
Downloading:
http://repo.maven.apache.org/maven2/net/sf/ehcache/ehcache-web/2.0.4/ehcache-web-2.0.4.pom
Downloaded:
http://repo.maven.apache.org/maven2/net/sf/ehcache/ehcache-web/2.0.4/ehcache-web-2.0.4.pom
(4 KB at 17.3 KB/sec)
Downloading:
http://repo.maven.apache.org/maven2/net/sf/ehcache/ehcache-web-parent/2.0.4/ehcache-web-parent-2.0.4.pom
Downloaded:
http://repo.maven.apache.org/maven2/net/sf/ehcache/ehcache-web-parent/2.0.4/ehcache-web-parent-2.0.4.pom
(2 KB at 23.1 KB/sec)
...
ehcache-web and ehcache-web-parent are fetched only from maven central.
3. Insure your ~/.m2/repository/net/sf/ehcache is empty (rm -rf
~/.m2/repository/net/sf/ehcache)
2. run ant. You see
...
[artifact:mvn] Downloading:
http://repo1.maven.org/maven2/net/sf/ehcache/ehcache-web/2.0.4/ehcache-web-2.0.4.pom
[artifact:mvn] 3K downloaded
[artifact:mvn] Downloading:
http://oss.sonatype.org/content/repositories/sourceforge-snapshots/net/sf/ehcache/ehcache-web-parent/2.0.4/ehcache-web-parent-2.0.4.pom
[artifact:mvn] 184b downloaded
[artifact:mvn] [WARNING] *** CHECKSUM FAILED - Checksum failed on download:
local = '780ba3cf6b6eb0f7c9f6d41d8d25a86a2f46b0c4'; remote = '<html>
[artifact:mvn] <head><title>301' - RETRYING
[artifact:mvn] Downloading:
http://oss.sonatype.org/content/repositories/sourceforge-snapshots/net/sf/ehcache/ehcache-web-parent/2.0.4/ehcache-web-parent-2.0.4.pom
[artifact:mvn] 184b downloaded
[artifact:mvn] [WARNING] *** CHECKSUM FAILED - Checksum failed on download:
local = '780ba3cf6b6eb0f7c9f6d41d8d25a86a2f46b0c4'; remote = '<html>
[artifact:mvn] <head><title>301' - IGNORING
...
You see
a) ehcache-web is fetched from maven central, but ehcache-web-parent is fetched
only from sourceforge-snapshots and does not attempt to fetch from maven
central (this is true even if you have a repositories element in your main
pom.xml that specifies this repository with snapshots=false.
This is because ehcache-web's pom.xml had a repositories element specifying
sourceforge-snapshots. If you modify the ehcache-web's pom.xml in your local
.m2/repositories to remove the repositories element within it, then the maven
ant task will properly retrieve ehcache-web-parent from maven central.
b) the stored ehcache-web-parent pom.xml is the HTTP redirect page which is
confusing and messes up the build.
This appears to happen because the fetch of ehcache-web-parent from
sourceforge-snapshots returns a 301 to an https URL, which returns a 404.
wget
http://oss.sonatype.org/content/repositories/sourceforge-snapshots/net/sf/ehcache/ehcache-web-parent/2.0.4/ehcache-web-parent-2.0.4.pom
--2014-07-08 13:01:28--
http://oss.sonatype.org/content/repositories/sourceforge-snapshots/net/sf/ehcache/ehcache-web-parent/2.0.4/ehcache-web-parent-2.0.4.pom
Resolving oss.sonatype.org (oss.sonatype.org)... 207.223.241.93
Connecting to oss.sonatype.org (oss.sonatype.org)|207.223.241.93|:80...
connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location:
https://oss.sonatype.org/content/repositories/sourceforge-snapshots/net/sf/ehcache/ehcache-web-parent/2.0.4/ehcache-web-parent-2.0.4.pom
[following]
--2014-07-08 13:01:28--
https://oss.sonatype.org/content/repositories/sourceforge-snapshots/net/sf/ehcache/ehcache-web-parent/2.0.4/ehcache-web-parent-2.0.4.pom
Connecting to oss.sonatype.org (oss.sonatype.org)|207.223.241.93|:443...
connected.
HTTP request sent, awaiting response... 404 Not Found
2014-07-08 13:01:29 ERROR 404: Not Found.
In summary:
- maven ant task should not use the repositories element listed in the fetched
artifact (ehcache-web) to resolve dependencies, but should instead use the
'normal' list of repositories (e.g. maven central).
--
This message was sent by Atlassian JIRA
(v6.1.6#6162)