2011-10-12 152 views

回答

88

看看Maven的依赖插件,特别是 copy-dependencies目标。 usage section描述了如何做到你想要的。

要通过命令行这样做只是做:

$ mvn dependency:copy-dependencies -DoutputDirectory=OUTPUT_DIR 
+0

我遇到了这个方法的一个奇怪的问题,它下载了主依赖项的.pom文件,但为它的子依赖项(传递依赖项)下载了适当的jar文件。难道我做错了什么? – derelict

2

Maven将所有这些存储在本地Maven2存储库中。默认情况下,它会将它们存储在用户主目录下的一个名为repository的目录下。

您可以使用maven-dependency-plugin的目标copy来获取项目的所有依赖关系,并将它们放在一个文件夹中。

http://maven.apache.org/plugins/maven-dependency-plugin/copy-mojo.html

+1

在java中有没有其他的方式来复制依赖关系,因为我不写pom.xml我只是运行它? –

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结合使用,您可以将所有内容打包到一个自包含的存档中进行分发。

+0

我将'$ {project.build.directory}'更改为'main \ java \ resources \ libs'来构建我的本地库。谢谢!注意:这里我的路径是相对于'usr.dir'(项目根目录)的,但它也可以是绝对的,比如'C:\ Mydir'。大! – FaithReaper

4
  1. 去这个网站:http://jar-download.com/online-maven-download-tool.php

  2. 插入Maven依赖XML

  3. 下载jar文件为ZIP。

+4

我不想通过第三方(第四方)下载.jars,谁知道他们还添加了什么或者他们如何修改档案(恶意软件)? sblundy给出了一个更直接的答案。 –

0

正如所解释的here,您可以使用maven-dependency-plugin:get这一点。

举例来说,如果你要下载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=./ -Dartifact=org.apache.hive:hive-common:2.1.1 

,执行此:

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 
相关问题