【发布时间】:2012-06-09 10:10:34
【问题描述】:
我正在编写一个应用程序,需要我下载一个 jar 给定的 maven groupid/artifactid/version。
我现在开始
public Model pomToModel(String pomUrl) throws Exception {
URL url = new URL(pomUrl);
InputStream stream = url.openStream();
try {
Model model = new MavenXpp3Reader().read(stream);
return model;
} finally {
stream.close();
}
}
所以给定了 POM 的 url,我现在有了代表它的 maven 模型对象。这似乎运作良好。
我想知道的是两件事:
- 在 maven 插件将使用的 maven 存储库中找到模型表示的 jar 工件的 url
- 给定模型,在本地存储库中找到代表 jar 的文件
我已经有质量差的解决方案:我去 mvnrepository.com 手动编码 url,并使用 ~/.m2/repository 作为文件的前缀。我显然可以改进这个解决方案,但我最终会在 maven 代码库中复制经过良好测试和良好使用的代码。
我真的很想知道如何使用 maven 类来做到这一点。
我已经进行了相当多的 google 搜索,但是关于 maven 和 jars(甚至在 stackoverflow 上)的任何搜索的有趣之处在于,我找到了很多关于如何使用 maven 的解决方案,而不是如何使用Maven 类。
感谢您的帮助
【问题讨论】:
-
Maven 下载他的 pom.xml 中指定的所有 jar 文件。
-
还可以查看jcabi-aether,这可能有助于更轻松地执行此操作并减少代码行