Details
Description
In maven 2.2.1, the following command would create a Grails 1.3.4 project, using the archetype at http://repo1.maven.org/maven2/org/grails/grails-maven-archetype/1.3.4/
mvn archetype:generate -DarchetypeGroupId=org.grails \
-DarchetypeArtifactId=grails-maven-archetype \
-DarchetypeVersion=1.3.4 \
-DgroupId=example -DartifactId=my-app
In maven 3, this doesn't happen, and a Grails 1.2.0 project is created instead, causing confusion.
[INFO] Archetype repository missing. Using the one from [org.grails:grails-maven-archetype:1.2.0] found in catalog remote
This single line output is easily overlooked.
Adding -DarchetypeRepository=http://repo1.maven.org/maven2 does the trick in maven 3, but I expected maven central to be default enabled?
One of the features of maven 3 is backward compatibility with maven 2. Is this change intentional?
I think the command should fail when the explicit given version is not found, not just use an old version.
And maven central should be used like in maven 2, to preserve backwards compatibility, and support 'principle of least surprise' as maven central is default enabled for other dependencies.
Issue Links
- duplicates
-
ARCHETYPE-344
Cannot use local snapshot archetypes w/o -DarchetypeRepository=local
-
- is duplicated by
-
MGWT-233
Cannot generate GWT 2.1.0 project -- Archetype repository missing -- it creates GWT 1.7.1 project instead
-
- supercedes
-
MGWT-233
Cannot generate GWT 2.1.0 project -- Archetype repository missing -- it creates GWT 1.7.1 project instead
-
I just had a look at the case and confirm this is a stupid bug: automatic catalog retrieval overrides version searched for...