我正在尝试生成自定义maven archtype,我正在尝试下面的示例来生成自定义maven spring boot archtype:
如果我尝试运行下面的maven generate命令 - 效果很好
mvn archetype:generate \
-DarchetypeGroupId=com.romeh.spring-boot-archetypes \
-DarchetypeArtifactId=spring-boot-quickstart \
-DarchetypeVersion=1.0.0 \
-DgroupId=com.test \
-DartifactId=sampleapp \
-Dversion=1.0.0-SNAPSHOT \
-DinteractiveMode=false
但是如果我用自定义名称更改组ID,它就会失败 例如,如果我将从 -DarchetypeGroupId = com.romeh.spring-boot-archetypes 更改为 -DarchetypeGroupId = com。 test .spring- boot-archetypes
我收到以下错误消息 - 如果我更改了组ID。
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:26 min
[INFO] Finished at: 2018-04-19T11:45:36-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate (default-cli) on project spring-boot-quickstart: The desired archetype does not exist (com.test.spring-boot-archetypes:spring-boot-quickstart:1.0.0) -> [Help 1]
请注意 - 在执行此命令之前,我已经在pom.xml和archetype-catalog.xml中更改了组ID。
请你帮我解决这个问题 - 不知道我在这里做错了什么。
答案 0 :(得分:0)
你不应该这样做。这些属性
-DarchetypeGroupId=com.romeh.spring-boot-archetypes
-DarchetypeArtifactId=spring-boot-quickstart
-DarchetypeVersion=1.0.0
标识原型;就像你有一些JAR并且想要将它添加到项目中一样,你需要提供groupId
,artifactId
和version
。
同样的方法用于原型! Archetypes打包在JAR中,它们由描述原型内容的原型元数据组成。
那些属性说Maven应该运行什么样的原型(比如什么JAR)来生成你的app骨架。如果你改变它们 - Maven不会在存储库中找到合适的JAR。
相反,你应该修改:
-DgroupId=com.test
-DartifactId=sampleapp
-Dversion=1.0.0-SNAPSHOT
这些将是由该原型生成的项目属性。