2016-02-08 36 views
2

我目前正在使用Maven 3.3.3,其中mvn.bat文件已被删除。运行Maven的建议和唯一方法是通过mvn.cmd文件。指定Maven Archetype插件的依赖版本

我正在使用调用maven-invoker插件进行某些操作的自定义原型。 Note that the invoker plugin is a dependency of the Maven archetype plugin

archetype:generate,调用被调用,并抛出一个错误:

Error configuring command-line. Reason: Maven executable not found at: <MAVEN_PATH>\bin\mvn.bat

这个问题似乎已得到修复与调用者的2.2版,但maven-archetype-plugin的最后一个版本仍然使用它的旧版本。

如何在我的原型的POM中指定要使用的调用者插件的版本?

现在,我试图通过将此代码添加到原型的POM文件中来配置插件,但它没有效果,并且没有修复错误。

<plugin> 
    <groupId>org.apache.maven.archetype</groupId> 
    <artifactId>maven-archetype</artifactId> 
    <version>2.4</version> 
    <dependencies> 
     <dependency> 
      <groupId>org.apache.maven.shared</groupId> 
      <artifactId>maven-invoker</artifactId> 
      <version>2.2</version> 
     </dependency> 
    </dependencies> 
</plugin> 

编辑1: 这里的过滤堆栈跟踪。

[INFO] Invoking post-archetype-generation goals: com.company.my-custom-maven-plugin:uuid-generator 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 2.777 s 
[INFO] Finished at: 2016-02-08T15:09:19+01:00 
[INFO] Final Memory: 18M/210M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.4:generate (default-cli) on project standalone-pom: Cannot run additions goals. Error configuring command-line. Reason: Maven executable not found at: <MAVEN_PATH>\bin\mvn.bat -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.4:generate (default-cli) on project standalone-pom: Cannot run additions goals. 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:197) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot run additions goals. 
    at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.invokePostArchetypeGenerationGoals(CreateProjectFromArchetypeMojo.java:241) 
    at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.execute(CreateProjectFromArchetypeMojo.java:219) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
    ... 20 more 
Caused by: org.apache.maven.shared.invoker.MavenInvocationException: Error configuring command-line. Reason: Maven executable not found at: <MAVEN_PATH>\bin\mvn.bat 
    at org.apache.maven.shared.invoker.DefaultInvoker.execute(DefaultInvoker.java:105) 
    at org.apache.maven.archetype.mojos.CreateProjectFromArchetypeMojo.invokePostArchetypeGenerationGoals(CreateProjectFromArchetypeMojo.java:237) 
    ... 23 more 
Caused by: org.apache.maven.shared.invoker.CommandLineConfigurationException: Maven executable not found at: <MAVEN_PATH>\bin\mvn.bat 
    at org.apache.maven.shared.invoker.MavenCommandLineBuilder.findMavenExecutable(MavenCommandLineBuilder.java:597) 
    at org.apache.maven.shared.invoker.MavenCommandLineBuilder.build(MavenCommandLineBuilder.java:68) 
    at org.apache.maven.shared.invoker.DefaultInvoker.execute(DefaultInvoker.java:101) 
    ... 24 more 
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

回答

4

这是Maven Archetype插件的一个错误:在JIRA问题是ARCHETYPE-488。它会影响插件的所有版本,其版本号为≤ 2.4,并使用版本3.0.0进行解析。

在链接的问题引用Jörg Hohwiller(08日-JAN-2016 13:47):

是否有它的解决方法?

是的。只需在MAVEN_HOME/bin中创建一个名为“mvn.bat”的“mvn.cmd”副本。

因此,使用2.4或更早版本的可能解决方法是仅使用其他名称复制mvn可执行文件。

+0

谢谢!我们实际上已经尝试过了,它工作。但是我们需要分发这个archteype,并且我们不能在客户端的计算机上运行这些更改。还会有其他什么吗? –

+0

@Rems恐怕问题来自客户端本身。因此,我们需要等待解决该错误或修改客户端计算机。 (请注意,在关联的问题中,有人尝试过你的方法,但同样的错误也失败了) – Tunaki

+0

伤心:( Sooo,我想我在原型的POM中添加的''部分永远不会被使用,因为执行'archetype:生成'我实际上并没有在POM上运行Maven,所以这些设置在运行的生命周期中不被使用? –

2

通过@Tunaki的错误引用已修复(张贴供参考)和pom.xml需求:

<plugin> 
    <artifactId>maven-archetype-plugin</artifactId> 
    <version>2.4</version> 
    <dependencies> 
    <dependency> 
      <groupId>org.apache.maven.shared</groupId> 
      <artifactId>maven-invoker</artifactId> 
      <version>2.2</version> 
    </dependency> 
    </dependencies> 
</plugin>