2011-01-14 30 views
12

Tôi đã có một yêu cầu như sau. Tôi cần chạy tệp xây dựng kiến ​​trong quá trình xây dựng maven. Tôi cần gọi tệp build.xml từ tệp pom.xml của mình. Tôi đã làm điều đó bằng cách sử dụng maven-antrun-plugin. Bây giờ tôi cần cài đặt kiến ​​xây dựng tệp jar được tạo tự động vào kho lưu trữ cục bộ của tôi trước khi maven biên dịch nguồn dự án của tôi. Tôi đã thử sử dụng plugin xây dựng-helper-maven nhưng nó không giúp được gì. Hoặc là tôi đang làm điều gì đó sai, hoặc tôi không làm đúng. Hãy giúp tôi.Maven: cài đặt tập tin jar trong quá trình xây dựng

Cập nhật

Cảm ơn bạn. nhiệm vụ kiến ​​quạ cũng làm việc cho tôi. Tuy nhiên tôi đang chạy vào ngoại lệ sau khi kết thúc quá trình xây dựng. Bất kỳ sự trợ giúp nào cũng được đánh giá cao. 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)

Trả lời

0

Nếu tất cả những gì mà nguồn dự án của bạn cần là quyền truy cập vào nội dung do kiến ​​tạo tạo, bạn có thể sử dụng plugin trợ giúp xây dựng để attach the source.

Nếu nội dung của kiến ​​xây dựng là cần thiết như một phụ thuộc, thì có lẽ bạn nên di chuyển mã liên quan đến kiến ​​đến một dự án riêng biệt và xây dựng nó.

Nếu có thêm chi tiết, có thể, ai đó có thể cung cấp giải pháp tốt hơn.

0

Hãy xem Maven Ant Tasks đó là em họ của maven-antrun-plugin. Nó cho phép gọi một số chức năng của Maven từ kiến, như cài đặt jar của bạn vào kho lưu trữ. Nó làm việc tốt cho tôi với một nửa xây dựng lai Maven, một nửa Ant.

19

Tôi đã gặp phải ngoại lệ tương tự như được đăng ở trên khi tôi gọi Maven từ bên trong một kịch bản lệnh Ant bằng cách sử dụng tác phẩm: mvn task. Tôi quản lý để loại bỏ nó bằng cách thêm ngã ba = "true" vào lời gọi nhiệm vụ như sau:

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

Bạn cũng có thể bỏ phiếu cho https://jira.codehaus.org/browse/MANTTASKS-201 – fnt

Các vấn đề liên quan