我有一个 Maven 存储库,其中包含我想在其他项目中本地使用的 jar 文件。从 Maven 存储库下载这些 jar 文件的最佳方法是什么。
我去了http://mvnrepository.com/但 jar 文件在我的构建中不起作用。我想要的是 Maven 构建 jar 文件,但我无法从我的 Netbeans 项目中保存它们。
有没有办法下载 Maven 存储库中的所有文件?
我有一个 Maven 存储库,其中包含我想在其他项目中本地使用的 jar 文件。从 Maven 存储库下载这些 jar 文件的最佳方法是什么。
我去了http://mvnrepository.com/但 jar 文件在我的构建中不起作用。我想要的是 Maven 构建 jar 文件,但我无法从我的 Netbeans 项目中保存它们。
有没有办法下载 Maven 存储库中的所有文件?
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。:)
你为什么不尝试使用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
工具 mvn2get ( https://github.com/groboclow/mvn2get ) 将下载适合在本地存储库中使用的已发布 Maven 工件。这包括 POM 文件、校验和文件和签名文件,以及能够搜索依赖项。
它允许单行执行来下载文件:
$ mvn2get.py -d my-local-repo-dir --resolve log4j:log4j:1.2.17
我基于下载到本地存储库的类似需要编写了这个脚本。
显而易见的答案是建议您考虑使用 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
笔记: