2011-10-12 154 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 
相關問題