如何使用 Maven pom 仅将 jar 文件下载到特定目录?
Posted
技术标签:
【中文标题】如何使用 Maven pom 仅将 jar 文件下载到特定目录?【英文标题】:How to use Maven pom to download jar files only to a specific directory? 【发布时间】:2011-12-06 05:38:13 【问题描述】:有没有办法将 pom.xml 文件中的依赖项下载到 java 中的指定文件夹?我可以从 java 运行 maven 命令并收到下载消息,但我不知道 maven 将这些库存储在哪里?如何将这些依赖项下载到特定文件夹?
【问题讨论】:
【参考方案1】:看看 maven 的依赖插件,特别是
copy-dependencies
目标。 usage section 描述了如何做你想做的事。
要从命令行执行,只需执行以下操作:
$ mvn dependency:copy-dependencies -DoutputDirectory=OUTPUT_DIR
添加此项以排除传递或内部依赖项:
-DexcludeTransitive=true
【讨论】:
我在使用这种方法时遇到了一个奇怪的问题,它为主要依赖项下载了一个 .pom 文件,但对于它的子依赖项(传递依赖项),它下载了正确的 jar。我做错了吗? 注意,在 Windows 上,使用mvn dependency:copy-dependencies "-DoutputDirectory=OUTPUT_DIR"
【参考方案2】:
正如here 解释的那样,您可以为此使用maven-dependency-plugin:get。
例如,如果您想在本地文件夹中下载org.apache.hive:hive-common:2.1.1
,请执行以下操作:
mvn dependency:get -Ddest=./ -Dartifact=org.apache.hive:hive-common:2.1.1
如果您想从https://oss.sonatype.org/content/repositories/snapshots
快照存储库下载最新的3.0.0-SNAPSHOT:tar.gz
版本的com.orientechnologies:orientdb-community-gremlin
,请执行以下操作:
mvn dependency:get -Ddest=./ -DremoteRepositories=sonatype-nexus-snapshots::::https://oss.sonatype.org/content/repositories/snapshots -Dartifact=com.orientechnologies:orientdb-community-gremlin:3.0.0-SNAPSHOT:tar.gz
【讨论】:
您可以使用-Dartifact=org.apache.hive:hive-common:LASTEST
获取最新版本。
[WARNING] 目的地/目的地参数已弃用:它将在未来版本中消失。【参考方案3】:
在 pom.xml 中添加类似如下内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<outputDirectory>
$project.build.directory
</outputDirectory>
</configuration>
</plugin>
然后运行mvn clean dependency:copy-dependencies
执行复制。
将此与assembly plugin 结合使用,您可以将所有内容打包成一个独立的存档以供分发。
【讨论】:
我将$project.build.directory
更改为 main\java\resources\libs
以构建我的本地库。谢谢!注意:这里我的路径是相对于usr.dir
(项目根目录)的,但它也可以是绝对的,比如C:\Mydir
。太好了!【参考方案4】:
Maven 将所有这些存储在它的本地 Maven2 存储库中。默认情况下,它会将它们存储在您的用户主目录中名为存储库的目录下。
您可以使用 maven-dependency-plugin 的称为 copy 的目标来获取项目的所有依赖项并将它们放在一个文件夹中。
http://maven.apache.org/plugins/maven-dependency-plugin/copy-mojo.html
【讨论】:
在java中有没有其他方法可以复制依赖项,因为我不写pom.xml我只是运行它?【参考方案5】:访问此站点:http://jar-download.com/online-maven-download-tool.php
插入 Maven 依赖项 XML
以 ZIP 格式下载 jar 文件。
【讨论】:
我会避免通过第三方(第四方?)网站下载 .jar,谁知道他们还添加了什么或如何修改档案(恶意软件)? sblundy 给出了更直接的答案。 网站已关闭并使用外部 API以上是关于如何使用 Maven pom 仅将 jar 文件下载到特定目录?的主要内容,如果未能解决你的问题,请参考以下文章