下载Maven资源库文件

时间:2012-07-27 19:48:20

标签: java maven netbeans

我有一个Maven存储库,其中包含我想在其他项目上本地使用的jar文件。从Maven仓库下载这些jar文件的最佳方法是什么?

我去了http://mvnrepository.com/但是jar文件在我的构建中不起作用。我想要的是Maven构建jar文件,但是我无法将它们保存在Netbeans的项目中。

有没有办法下载Maven存储库中的所有文件?

4 个答案:

答案 0 :(得分:9)

maven中心可能有数千个jar文件,所以我不会尝试下载所有这些文件。

通常,如果您想使用maven存储库中的jar,您可能想要自己启动maven项目;将pom.xml配置为需要这些依赖项,它们将自动下载。

大多数Java IDE都有maven支持或maven插件。

- 编辑 -

以下是来自maven's website的一个非常快速的pom.xml示例:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>Maven Quick Start Archetype</name>
  <url>http://maven.apache.org</url>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.2</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

如果您正在使用eclipse,您可能希望m2e插件能够为您处理大部分内容。此外,它还将javadoc链接到这些罐子。 :)

答案 1 :(得分:3)

为什么不尝试使用Maven?使用Maven,您可以轻松自动管理您的依赖项。

这很简单。请检查此Maven in 5 minutes,以便您可以成功开始。有任何疑问,请告诉我。

- 编辑 -

只要您学习了一些主要概念,例如依赖项,就可以使用以下命令简单地启动项目:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

之后,您只需使用以下命令导入到Eclipse等最常用的IDE:

mvn eclipse:eclipse

答案 2 :(得分:1)

显而易见的答案是建议您考虑使用Maven构建代码。这将为您提供对Maven Central存储库的本机支持。

但是......我觉得你只想将你需要的文件下载到本地目录? 在这种情况下,我建议使用Apache ivy command-line

实施例

您想要的文件列在ivy.xml文件中。例如:

<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
    <info organisation="com.myspotontheweb" module="demo"/>

    <dependencies>
        <dependency org="commons-lang" name="commons-lang" rev="2.6" conf="default"/>
        <dependency org="junit" name="junit" rev="4.10" conf="default"/>
    </dependencies>

</ivy-module>

ivy可以填充本地“lib”目录,如下所示:

java -jar ivy.jar -retrieve "lib/[artifact].[ext]" -ivy ivy.xml

这种方法的优点是常春藤可以下载您指定的模块的附加传递依赖项:

$ find lib -type f
lib/commons-lang.jar
lib/junit.jar
lib/hamcrest-core.jar

注意:

  • hamcrest-core是junit的依赖。

答案 3 :(得分:0)

工具mvn2get(https://github.com/groboclown/mvn2get)将下载适合在本地存储库中使用的已发布的Maven工件。其中包括POM文件,校验和文件和签名文件,以及能够搜索依赖项的文件。

它允许单行执行来下载文件:

$ mvn2get.py -d my-local-repo-dir --resolve log4j:log4j:1.2.17

我基于下载到本地存储库的类似需求编写了此脚本。