Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 爪哇及;Maven生成并使用我自己的原型_Java_Maven 2_Maven Archetype - Fatal编程技术网

Java 爪哇及;Maven生成并使用我自己的原型

Java 爪哇及;Maven生成并使用我自己的原型,java,maven-2,maven-archetype,Java,Maven 2,Maven Archetype,我一直在忙于我的项目,用maven-2.2.1-uber.jar创建一个管理maven的webapp(在struts中)。当老板说它必须使用公司创建的一些原型时,问题就来了(所以你这个淘气的孩子没有预定义的原型!)。好吧,我使用了-DarchetypeRepository选项(通过ServletWrapper,我得到了我的完整web方向,因为存储库将在应用程序中),日志似乎找到了它,但是构建失败了——不幸的是——这个小文本“构建失败——定义的工件不是一个原型”,就这么简单。当然,我有很多信息线,

我一直在忙于我的项目,用maven-2.2.1-uber.jar创建一个管理maven的webapp(在struts中)。当老板说它必须使用公司创建的一些原型时,问题就来了(所以你这个淘气的孩子没有预定义的原型!)。好吧,我使用了-DarchetypeRepository选项(通过ServletWrapper,我得到了我的完整web方向,因为存储库将在应用程序中),日志似乎找到了它,但是构建失败了——不幸的是——这个小文本“构建失败——定义的工件不是一个原型”,就这么简单。当然,我有很多信息线,表面上说什么都没有。我读过《maven权威指南》寻求某种帮助,但它充其量只能说明问题

我的想法是,也许我在所有文件夹树的某个地方缺少了一些xml,实际上它告诉我pom.xml是一个原型,而不是一个项目。但我真的,真的,在网上或手册中找不到任何东西解释原型:generate(带有特殊参数)是如何工作的,以及我必须将每个文件夹和/或文件放在哪里

所以,我想大声说出我的想法(希望你能理解我想问的):我有一个模板,我在其中做一些xml更改(变量等),然后我必须给maen打电话,做一个原型:用变量项目生成。问题似乎是我的实际困惑不喜欢我正在做的事情。在原型生成之后,witch luckly将创建一些目录树,并在某个地方给我留下一个POM.xml,我还需要做一些变量更改和更多的xml管理工作,因此maven非常乐意在这个过程中不破坏任何东西

你知道为什么我的原型确实是一个原型之后,这个maven的东西就不快乐了吗? 虽然我认为代码是正确的,但它可能是错误的,因为我使用的是maven ubber,我调用的是实际的CSMavenCli.main(String[,ClassWorld),我认为这次不是这样

谢谢大家!:)

随机的

但我真的,真的,在网上或手册中找不到任何东西解释原型:generate(带有特殊参数)是如何工作的,以及我必须将每个文件夹和/或文件放在哪里

你最好的选择是查看现有原型的来源,最好是接近你正在做的事情

假设我的原型确实是一个原型,你知道为什么这个maven的东西不快乐吗


老实说,我不确定我是否明白你在做什么,不,不知道。

这里有一个猜测……信息:
“构建失败-定义的工件不是原型”,描述了问题

我怀疑maven build从您的web应用程序接收到的不是原型。
尝试将您的web浏览器指向web应用程序提供的原型url,它应该类似于

如果没有,则检查您的web应用程序是否没有尝试将生成的XML作为视图模板进行处理,以及XML是否以正确的mime类型流式传输到HttpResponse。

还要检查您的web.xml中的安全定义是否保护原型资源。

首先,感谢您的回答:)

今天,我在看关于maven的教程时,试图更好地理解原型是如何工作的,尽管这仍然非常令人失望

我的问题是,当我尝试执行mvn原型:生成指令时,maven中的构建失败。这是我的问题,尽可能简单。构建问题说“定义的工件不是原型”

我尝试过decreated指令原型:create,错误大致相同,但它添加了“嵌入式错误:找不到META-INF/maven/archetype.xml描述符”。在我的原型中有一个archetype.xml,因此decreated指令似乎是出于一个很好的原因而被取消的

我的全部指示如下

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控制台中完成这项工作,您可以忘记webapp项目和所有这些东西。我希望一旦它在控制台中开始工作,它就可以在那里工作

唉!我还有stacktrace(我也用-e参数完成了这项工作)

由于存储库可能不好,我还将-Darchetyperepository更改为c:.m2\repository,但它也无法完成不同的内容

我希望这篇文章更具洞察力

谢谢大家:) 随机的

编辑:好的,新数据。我知道为什么它看起来不是一个原型,而且似乎mvn archetype:generate-DarchetypeCatalog=local有0个原型。因此它似乎没有安装。我已经完成了mvn安装和mvn archetype:crawl,但它不起作用。 你知道为什么它不让我安装自己的原型吗? 再次感谢:)

再次编辑:解决了本地原型的问题,我不得不将archetype-catalog.xml从~/.m2/repository/移动到~/.m2/然后就像Maven找到我的本地原型一样。奇怪的是,它仍然会给我同样的错误。我还更改了我的原型存储库和基目录

最后一次编辑(我希望如此!):嗯,我终于找到了错误。太愚蠢了,我觉得自己有必要写下t(因为这已经三天了)。我的archetypeArtifactId和我的archetypeGroupId在哪里交换(我的意思是,一个是另一个)。一旦我开始传递正确的参数(在archetype-catalog.xml中定义),尽管
+ 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] ------------------------------------------------------------------------