Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何以编程方式使用maven下载jar_Java_Maven_Aether - Fatal编程技术网

Java 如何以编程方式使用maven下载jar

Java 如何以编程方式使用maven下载jar,java,maven,aether,Java,Maven,Aether,我正在编写一个应用程序,该应用程序要求我在给定mavensgroupId/artifactid/version的情况下下载一个jar 我现在从 public Model pomToModel(String pomUrl) throws Exception { URL url = new URL(pomUrl); InputStream stream = url.openStream(); try { Model model = new MavenXpp3Reade

我正在编写一个应用程序,该应用程序要求我在给定mavensgroupId/artifactid/version的情况下下载一个jar

我现在从

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类来实现这一点

    我已经做了不少谷歌搜索,但搜索maven和jars(甚至在stackoverflow上)的有趣之处在于,我找到了很多关于如何使用maven的解决方案,而不是如何使用maven类进行编码


    感谢您提供帮助

    从它打算使用的Maven存储库下载工件

    另见

    此外,还有如何做的事情和完整的源代码以太库。 很久以前,我就开始使用乙醚了。

    选项1 khmarbaise推荐的乙醚

    它是Maven 3.0附带的本机库

    选择2 如果您想要从命令行或shell脚本中下载Maven模块的简单解决方案,ApacheIvy有一个jar

    例如:

    选择3 如果您只是在寻找一个Maven jar,而不关心依赖关系管理,那么它就更简单了

    以下是如何直接从Maven Central检索log4j jar:

    curl -O http://search.maven.org/remotecontent?filepath=log4j/log4j/1.2.17/log4j-1.2.17.jar
    
    如果您使用的是Nexus存储库管理器,它有一个有用的RESTAPI


    Maven下载pom.xml中指定的所有jar文件。另请看一看,这可能有助于更轻松地完成这项工作,而且代码行更少。我花了几个小时不愉快地玩以太。哪里有教程或博客?演示没有编译,他们命名的类似乎不存在。我会继续讲几个小时,然后把头撞在桌子上:)是的,看看里面:这里有一些关于如何使用代码的解释,还有一个例子插件的链接,可以做到这一点:我不得不说,常春藤方法非常有效。编译并运行。非常好。谢谢,我会同意的。如果这是你的解决方案,别忘了把它标记为答案