Update README to reflect maven-archetype-plugin version requirements
id-keenan opened this issue · 1 comments
I ran into an issue generating a new project using the archetype version 23 - I would get this output:
[INFO] project created from Archetype in dir: /Users/ryankeenan/spa-test/archetype-test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.875 s
[INFO] Finished at: 2020-05-21T12:17:32-06:00
[INFO] Final Memory: 15M/305M
[INFO] ------------------------------------------------------------------------
Ryan-Keenan:spa-test ryankeenan$ cd archetype-test/
Ryan-Keenan:archetype-test ryankeenan$ ll
total 80
drwxr-xr-x 17 ryankeenan staff 544 May 21 12:17 .
drwxr-xr-x 4 ryankeenan staff 128 May 21 12:17 ..
-rw-r--r-- 1 ryankeenan staff 1139 May 21 12:17 .gitignore
-rw-r--r-- 1 ryankeenan staff 3344 May 21 12:17 README.md
drwxr-xr-x 4 ryankeenan staff 128 May 21 12:17 all
drwxr-xr-x 4 ryankeenan staff 128 May 21 12:17 core
drwxr-xr-x 6 ryankeenan staff 192 May 21 12:17 dispatcher.ams
drwxr-xr-x 6 ryankeenan staff 192 May 21 12:17 dispatcher.cloud
drwxr-xr-x 4 ryankeenan staff 128 May 21 12:17 it.launcher
drwxr-xr-x 4 ryankeenan staff 128 May 21 12:17 it.tests
-rw-r--r-- 1 ryankeenan staff 32701 May 21 12:17 pom.xml
drwxr-xr-x 5 ryankeenan staff 160 May 21 12:17 ui.apps
drwxr-xr-x 4 ryankeenan staff 128 May 21 12:17 ui.apps.structure
drwxr-xr-x 4 ryankeenan staff 128 May 21 12:17 ui.content
drwxr-xr-x 16 ryankeenan staff 512 May 21 12:17 ui.frontend.angular
drwxr-xr-x 15 ryankeenan staff 480 May 21 12:17 ui.frontend.general
drwxr-xr-x 12 ryankeenan staff 384 May 21 12:17 ui.frontend.react
The output said success, but as is evident from the output of ll
- there are too many modules (and the project doesn't even build). Upon running the archetype generation with -X
I saw [DEBUG] - ignored resource META-INF/archetype-post-generate.groovy
- which means that all the groovy code cleaning up the newly generated codebase wasn't running, so everything was staying exactly as-is after the initial generation. After doing a lot of digging I was able to find this Maven blog article which mentions a feature released along with 3.1.0 that enables the usage of the archetype-post-generate.groovy
, so I had to check what version was actually in use with the standard mvn archetype:generate
. I've been using the same computer for a long while and doing AEM development for years, so my machine has a very extensive (and in places outdated) local Maven repository, which is really the cause of this issue. I had a Maven metadata file at ~/.m2/repository/org/apache/maven/plugins/maven-archetype-plugin/maven-metadata-central.xml
that specified my 'latest' version of maven-archetype-plugin at 2.4
(I'm not the only one - I had coworkers test this locally too to see if it was just "an issue with my machine"). When I instead ran this that specified the actual latest version:
mvn -Padobe-public org.apache.maven.plugins:maven-archetype-plugin:3.1.2:generate -DarchetypeGroupId=com.adobe.granite.archetypes -DarchetypeArtifactId=aem-project-archetype -DarchetypeVersion=23 -DgroupId=com.archetype.aem -DappId=archetype-test -DappTitle='Test Project' -DincludeDispatcherConfig=n -DfrontendModule=react
The generation was successful and I saw this log at the end of the output:
[INFO] Executing META-INF/archetype-post-generate.groovy post-generation script
And my structure was as expected (i.e. no dispatcher configs, only ui.frontend with React).
I typed all that just in case anyone else has experienced this issue - based on my coworkers I know I'm not alone in this.
All of that is just to say that it would be good to either modify the command in the README from mvn archetype:generate
to either mvn org.apache.maven.plugins:maven-archetype-plugin:3.1.2:generate
or mvn org.apache.maven.plugins:maven-archetype-plugin:LATEST:generate
Or just a note to people saying 'make sure you use 3.1.0+ of maven-archetype-plugin'.
Expected Behaviour
The sample command provided in the README should work for all users.
Actual Behaviour
Based on the age of the user's machine (and Maven repo) it may not always work.
Reproduce Scenario (including but not limited to)
Steps to Reproduce
Run the generation specifying the 2.4 version:
mvn -Padobe-public org.apache.maven.plugins:maven-archetype-plugin:2.4:generate -DarchetypeGroupId=com.adobe.granite.archetypes -DarchetypeArtifactId=aem-project-archetype -DarchetypeVersion=23
Platform and Version
Java 1.8
Maven 3.3.9
@id-keenan updated README with not about minimal required version (68402d2), thank you.