如何将 Maven 目标设为 运行 作为 Ant build.xml 任务?无法 运行 编程 "mvn" error=2
How can I get a Maven goal to run as Ant build.xml task? Cannot run program "mvn" error=2
我有一个使用 Maven 构建的 Java 项目,但有一个 build.xml 的唯一任务是 运行 Maven 复制文件。我无法更改此项目的设计,但必须 运行 在我的 Intellij IDE 中获取它。我正在使用捆绑的 Maven 和 Ant 版本。 Maven 运行 可以正常编译 jar,ant 作业不会。
<project name="projectAppUploader" default="devbuild">
<target name="devbuild">
<exec executable="mvn">
<arg value="package"/>
</exec>
<copy file="module-gui/target/appUploader-GUI.jar" todir="/foo/bar/GUI/"/>
<copy file="module-main/target/appUploader.jar" todir="/foo/bar/app"/>
</target>
当我运行将其作为 Ant 目标时出现错误:
/home/alex/dev/projectAppUploader/build.xml:3: Execute failed: java.io.IOException: Cannot run program "mvn" (in directory "/home/alex/dev/projectAppUploader/"): error=2, No such file or directory
at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:673)
at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:497)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
at org.apache.tools.ant.Task.perform(Task.java:350)
at org.apache.tools.ant.Target.execute(Target.java:449)
at org.apache.tools.ant.Target.performTasks(Target.java:470)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
at org.apache.tools.ant.Project.executeTarget(Project.java:1361)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.Main.runBuild(Main.java:834)
at org.apache.tools.ant.Main.startAnt(Main.java:223)
at org.apache.tools.ant.Main.start(Main.java:190)
at org.apache.tools.ant.Main.main(Main.java:274)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.intellij.rt.ant.execution.AntMain2.main(AntMain2.java:31)
Caused by: java.io.IOException: Cannot run program "mvn" (in directory "/home/alex/dev/projectAppUploader/"): error=2, No such file or directory
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
at java.base/java.lang.Runtime.exec(Runtime.java:592)
at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:424)
at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:438)
at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:630)
at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:669)
... 23 more
Caused by: java.io.IOException: error=2, No such file or directory
at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:340)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:271)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
... 30 more
Ant build completed with 3 errors and no warnings in 0s at 16.04.21, 21:42
归功于 dariosiciliy。 Ant 不知道 intellij 的 mvn 程序的可执行文件的路径。如果我添加它(或者如果我在系统上安装 maven 并将其放入路径变量),它就可以工作。
我有一个使用 Maven 构建的 Java 项目,但有一个 build.xml 的唯一任务是 运行 Maven 复制文件。我无法更改此项目的设计,但必须 运行 在我的 Intellij IDE 中获取它。我正在使用捆绑的 Maven 和 Ant 版本。 Maven 运行 可以正常编译 jar,ant 作业不会。
<project name="projectAppUploader" default="devbuild">
<target name="devbuild">
<exec executable="mvn">
<arg value="package"/>
</exec>
<copy file="module-gui/target/appUploader-GUI.jar" todir="/foo/bar/GUI/"/>
<copy file="module-main/target/appUploader.jar" todir="/foo/bar/app"/>
</target>
当我运行将其作为 Ant 目标时出现错误:
/home/alex/dev/projectAppUploader/build.xml:3: Execute failed: java.io.IOException: Cannot run program "mvn" (in directory "/home/alex/dev/projectAppUploader/"): error=2, No such file or directory
at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:673)
at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:497)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
at org.apache.tools.ant.Task.perform(Task.java:350)
at org.apache.tools.ant.Target.execute(Target.java:449)
at org.apache.tools.ant.Target.performTasks(Target.java:470)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
at org.apache.tools.ant.Project.executeTarget(Project.java:1361)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.Main.runBuild(Main.java:834)
at org.apache.tools.ant.Main.startAnt(Main.java:223)
at org.apache.tools.ant.Main.start(Main.java:190)
at org.apache.tools.ant.Main.main(Main.java:274)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.intellij.rt.ant.execution.AntMain2.main(AntMain2.java:31)
Caused by: java.io.IOException: Cannot run program "mvn" (in directory "/home/alex/dev/projectAppUploader/"): error=2, No such file or directory
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
at java.base/java.lang.Runtime.exec(Runtime.java:592)
at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:424)
at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:438)
at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:630)
at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:669)
... 23 more
Caused by: java.io.IOException: error=2, No such file or directory
at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:340)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:271)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
... 30 more
Ant build completed with 3 errors and no warnings in 0s at 16.04.21, 21:42
归功于 dariosiciliy。 Ant 不知道 intellij 的 mvn 程序的可执行文件的路径。如果我添加它(或者如果我在系统上安装 maven 并将其放入路径变量),它就可以工作。