2011-01-14 60 views
12

我有一個要求如下。 我需要在maven構建過程中運行ant構建文件。我需要從我的pom.xml文件中調用build.xml。我已經使用maven-antrun-plugin完成了。現在我需要在Maven編譯我的項目源代碼之前將ant build生成的jar文件自動安裝到我的本地存儲庫中。我嘗試使用build-helper-maven-plugin,但它沒有幫助。要麼我做錯了什麼,要麼我做得不對。請幫忙。Maven:在構建過程中安裝jar文件

更新

謝謝。螞蟻maven任務也爲我工作。不過,我在構建過程結束時遇到了以下異常。任何幫助,高度讚賞。 org.apache.tools.ant.ExitException: Permission (java.lang.RuntimePermission exitVM) was not granted. at org.apache.tools.ant.types.Permissions$MySM.checkExit(Permissions.java:196) at java.lang.Runtime.exit(Runtime.java:99) at java.lang.System.exit(System.java:275) at org.codehaus.classworlds.Launcher.main(Launcher.java:376) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:599) at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217) at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152) at org.apache.tools.ant.taskdefs.Java.run(Java.java:771) at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:221) at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135) at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108) at org.apache.maven.artifact.ant.Mvn.execute(Mvn.java:81) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:599) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:390) at org.apache.tools.ant.Target.performTasks(Target.java:411) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) at org.apache.tools.ant.Project.executeTarget(Project.java:1368) 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:809) at org.apache.tools.ant.Main.startAnt(Main.java:217) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

回答

0

如果所有的項目源需要的是訪問由螞蟻構建生成的內容,您可以使用構建輔助性Maven的插件attach the source

如果需要將ant構建的內容作爲依賴項,那麼您應該將與ant相關的代碼移動到單獨的項目中並構建它。

如果提供了更多細節,也許有人可以提供更好的解決方案。

0

看看Maven Ant Tasks這是maven-antrun-plugin的表親。它允許從ant調用一些Maven功能,如將jar安裝到存儲庫中。它對於我來說非常合適,只需搭配一半的Maven,一半是Ant。

19

我遇到了上面發佈的異常,當時我使用工件:mvn任務從Ant腳本中調用Maven。我設法通過在任務調用中添加fork =「true」來刪除它,如下所示:

<artifact:mvn pom="path/to/my-pom.xml" mavenHome="/path/to/maven-2.0.x" fork="true"> 
    <arg value="install"/> 
</artifact:mvn> 
+0

您也可以投票支持https://jira.codehaus.org/browse/MANTTASKS-201 – fnt 2014-11-18 10:38:11