首先感谢您的回答:)
今天,我试图通过查看此处的 maven 教程来更好地了解原型的工作原理,尽管这仍然非常令人失望。
我的问题是,当我尝试执行 mvn archetype:generate 指令时,我在 maven 中构建失败。这是,尽可能简单,我的问题。构建问题说“定义的工件不是原型”。
我已经尝试了 decreapted 指令 archetype:create 并且错误或多或少相同,但它添加了“嵌入式错误:找不到 META-INF/maven/archetype.xml 描述符。” 在我的原型中,有一个 archetype.xml,所以似乎已删除的指令被删除是有充分理由的。
我的总指示如下
mvn archetype:generate
-DgroupId=my_groupid
-DartifactId=my_artifactid
-Dversion=1.0
-DarchetypeGroupId=archetype-foo-lib
-DarchetypeArtifactId=my.archetype.foo
-DarchetypeVersion=1.0
-DarchetypeRepository=C:/.m2/repository
-Dbasedir=C:/.m2/repository/archetype-foo-lib
-B
-DinteractiveMode=false
在 basedir 中,我有 pom.xml 和 dom4j.jar 并且存储库已启动(在一个小的 tomcat 服务器中)。此外,archetype 已安装,archetypegroupid、archetypeartifacid 和 archetypeversion 与 src\main\resources\archetype-resources 文件夹中的相同。我还尝试将 basedir 中的斜杠更改为“\”(以防万一),但没有更好的结果。
因为我现在正尝试直接在 maven 控制台中执行此操作,所以您可以忘记 webapp 项目和所有这些东西。一旦它开始在控制台中工作,我希望它可以在那里工作。
唉! 我也有堆栈跟踪(因为我也使用 -e 参数完成了此操作)
+ Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [archetype:generate] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] Preparing archetype:generate
[INFO] No goals needed for project - skipping
[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus
.velocity.ContextClassLoaderResourceLoader'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] [archetype:generate {execution: default-cli}]
[INFO] Generating project in Batch mode
[INFO] Archetype defined by properties
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] The defined artifact is not an archetype
[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.BuildFailureException: The defined artifact is not an archetype
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:715)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandalone
Goal(DefaultLifecycleExecutor.java:569)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau
ltLifecycleExecutor.java:539)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan
dleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen
ts(DefaultLifecycleExecutor.java:284)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
fecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:6
0)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoFailureException: The defined artifact is
not an archetype
at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execu
te(CreateProjectFromArchetypeMojo.java:201)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi
nManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:694)
... 17 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Tue Mar 30 11:08:59 CEST 2010
[INFO] Final Memory: 8M/15M
[INFO] ------------------------------------------------------------------------
由于存储库可能很糟糕,我还将 -Darchetyperepository 更改为 c:.m2\repository 但它也无法完成不同的事情。
我希望这篇文章更有洞察力。
谢谢大家:)随机
编辑:好的,新数据。我知道调查为什么它似乎不是原型,并且 mvn archetype:generate -DarchetypeCatalog=local 似乎有 0 个原型。所以它似乎没有安装。我已经完成了 mvn install 和 mvn archetype:crawl 但它不起作用。任何想法为什么它不允许我安装自己的原型?再次感谢 :)
再次编辑:解决了本地原型的问题,我不得不将原型-catalog.xml 从 ~/.m2/repository/ 移动到 ~/.m2/,然后就像 Maven 找到我的本地原型一样。奇怪的是,它仍然给我同样的错误。我还更改了我的原型存储库和基本目录。
最后编辑(我希望如此!):好吧,我终于找到了错误。太愚蠢了,我觉得自己很惭愧写下来(因为这个,知道已经三天了)。我的archetypeArtifactId 和我的archetypeGroupId 在哪里交换(我的意思是,一个是另一个)。一旦我开始传递正确的参数(在 archetype-catalog.xml 中定义,尽管我仍然必须移动到正确的位置),它就开始创造奇迹。也感谢所有阅读或写作的人:)