Прежде всего, спасибо за ответ:)
Сегодня я пытаюсь лучше понять, как работают архетипы, взглянув на учебник по maven здесь , хотя все еще очень разочаровывает.
Моя проблема в том, что у меня возникает ошибка сборки в maven, когда я пытаюсь выполнить команду mvn archetype: generate. Это как можно проще моя проблема. Проблема сборки говорит о том, что «определенный артефакт не является архетипом».
Я попробовал архетип обезглавленной инструкции: создать, и ошибка более или менее одинакова, но добавляет, что «Встроенная ошибка: невозможно найти дескриптор 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). Кроме того, установлен архетип, а archetypegroupid, archetypeartifacid и archetypeversion такие же, как в папке src \ main \ resources \ archetype-resources. Я также попытался изменить косые черты на '\' в basedir (на всякий случай), но безрезультатнее.
Поскольку я сейчас пытаюсь сделать это прямо в консоли maven, вы можете забыть о проекте веб-приложения и обо всем этом. Надеюсь, я смогу заставить его работать там, как только он начнет работать в консоли.
Увы! Также у меня есть трассировка стека (как я это сделал с параметром -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] ------------------------------------------------------------------------
Поскольку репозиторий может быть плохим, я также изменил репозиторий -Darchetype на c: .m2 \ repository, но он также не может выполнить что-то другое.
Надеюсь, этот пост более проницательный.
Спасибо всем :)
Случайная
Редактировать: ОК, новые данные. Я знаю, как исследовать, почему он не является архетипом, и кажется, что у mvn archetype: generate -DarchetypeCatalog = local есть 0 архетипов. Похоже, он не установлен. Я выполнил установку mvn и архетип mvn: crawl, но он не работает.
Есть идеи, почему он не позволяет мне устанавливать мои собственные архетипы?
Еще раз спасибо:)
Снова отредактируйте: проблема с локальными архетипами решена, мне пришлось переместить archetype-catalog.xml из ~ / .m2 / repository / в ~ / .m2 /, а затем точно так же, как Maven нашел мои локальные архетипы. Странно все, это все равно выдает мне ту же ошибку. Я также изменил свой архетип-репозиторий и базовый каталог.
Последнее редактирование (я надеюсь на это!): Ну, наконец-то я нашел ошибку. Это так глупо, что я чувствую, что мне стыдно записать это (прошло три дня, потому что я знал об этом). Мой archetypeArtifactId и мой archetypeGroupId были обменены (я имею в виду, один был другим). Как только я начал передавать параметры исправления (определенные в archetype-catalog.xml, которые, тем не менее, мне все еще приходилось перемещать в правильное место), он начал творить чудеса. Спасибо тоже всем peoplo, кто читал или писал:)