如何以编程方式调用 Maven 任务
我在另一个构建工具(Clojure 的 leiningen,但这不重要)的上下文中使用 Maven,我想知道如何调用像 dependency:build-classpath 以编程方式(即通过 Maven-API,而不是通过 mvn
-命令)。
I'm using Maven in the context of another build-tool (leiningen for Clojure, but this should not matter), and I would like to know how I would call a plugin like dependency:build-classpath programmatically (i.e. via the Maven-API, not via the mvn
-command).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用 Maven Invoker API。它又快又容易。
pom.xml:
Use the Maven Invoker API. Its quick and easy.
pom.xml:
这是一个更好的解决方案:使用 Mojo-Executor 库。它公开了一个简单的 Java API 用于调用 Maven 插件。
Here's a better solution: use the Mojo-Executor library. It exposes a simple Java API for invoking Maven plugins.
了解 maven-plugin-testing-harness 中的 org.apache.maven.plugin.testing.AbstractMojoTestCase 是如何实现的。这是我的一些测试中的代码片段,可能会有所帮助。
See how org.apache.maven.plugin.testing.AbstractMojoTestCase from maven-plugin-testing-harness is implemented. Here's a code snippet from some of my tests which may be helpful.
Ant Maven 任务 可以让您了解如何执行此操作(DependencyTask 源)。另一条路线可能是 PomModuleDescriptorParser 由 Ivy 使用。
The Ant Maven tasks can give you an idea how to do it (DependenciesTask source). Another route may be the PomModuleDescriptorParser used by Ivy.