Can we use pom.xml into ANT

大城市里の小女人 提交于 2019-12-06 03:18:03

问题


I know that, we can very well use ANT and Maven together to build the project.We can run ANT scripts through Maven's POM.xml. But my question is can we run pom.xml through ANT's build.xml ? i.e. can we create maven build from build.xml


回答1:


Yes, using maven ant tasks.

The page lists out multiple maven tasks which can be integrated into an ant build script, thus combining the features of both. To take an example, there is the mvn task, which as documented can do a full maven build from ant.

  <artifact:mvn mavenHome="/path/to/maven-3.0.x">
     <arg value="install"/>
  </artifact:mvn>

Besides this, there are

  • Dependencies task
  • Install and Deploy tasks
  • Pom task

each described with examples.




回答2:


Maven and ANT are very different build tools. In ANT you write all the logic yourself, whereas a standard build process is "baked in" with Maven. The POM file contains no logic, instead it contains a series of declarations about your project.

If you understand well how Maven works, it is theoretically possible to take a POM and generate an ANT build that emulates the behaviour of the Maven build. I'm not aware of any solution which can easily convert in the other direction, mainly because ANT is missing Maven functionality, such as dependency management.

Instead of trying to convert an ANT build into Maven, I'd recommend that you keep your existing build logic and delegate the management of your classpath to the ivy or Maven ANT tasks. These tools also provide tasks to publish your build output to a Maven repository, enabling your project to share with other projects using Maven.

Finally, I'm an ivy advocate and wrote an ant2ivy script which can assist in upgrade process. It creates an initial set of configuration files for downloading your projects dependencies from the Maven central repository.



来源:https://stackoverflow.com/questions/7552895/can-we-use-pom-xml-into-ant

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!