3

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

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

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

4

4 回答 4

9

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

一般来说,如果你想使用在 maven 仓库中找到的 jars,你可能需要自己启动一个 maven 项目;将您的配置pom.xml为需要这些依赖项,它们将自动下载。

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

- 编辑 -

这是maven 网站上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 链接到这些 jar。:)

于 2012-07-27T19:50:48.143 回答
3

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

这真的很简单。请在 5 分钟内检查此Maven,以便您可以成功开始使用它。有任何疑问,请告诉我。

- 编辑 -

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

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

之后,您可以简单地导入到最常用的 IDE,如 Eclipse,使用:

mvn eclipse:eclipse
于 2012-07-27T19:52:07.573 回答
2

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

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

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

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

于 2019-12-12T01:40:48.780 回答
1

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

但是...我感觉您只是想将所需的文件下载到本地目录?在这种情况下,我建议使用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>

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

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

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

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

笔记:

  • hamcrest-core 是 junit 的依赖项。
于 2012-07-27T23:22:50.393 回答