是的,我讀Utility for downloading artifacts from maven repo without mvn/poms和其他相關的問題,但我不想手動安裝文件。實際上,我想爲maven提供類似於wget的東西,它可以獲取工件(使用依賴關係)並將其放置在某處或將其安裝在本地存儲庫中。這可能是一個可用的插件嗎?是否可以明確告訴maven下載並將工件安裝到本地存儲庫?
2
A
回答
2
0
我會調查使用maven依賴插件與maven安裝插件的組合。
0
你的意思是一種無需添加依賴於的pom.xml?
因爲通過向您的pom.xml添加依賴項,Maven依賴項管理會自動從您指定的存儲庫檢索工件並將其安裝到本地存儲庫。
<dependencies>
<dependency>
<groupId>foo</groupId>
<artifactId>foo</artifactId>
<version>1.0.1</version>
</dependency>
</dependencies>
2
我不知道是否有一個Maven插件來處理這個問題,但它是相當簡單的使用Maven Ant tasks用於此目的。你並不需要有Maven的或POM文件,只需Ant和這個構建文件:
<?xml version="1.0" encoding="UTF-8"?>
<project name="mvn-get" default="get" basedir=".">
<property name="maven.ant.tasks.jar" value="${ant.home}/lib/maven-ant-tasks-2.011.jar" />
<property name="maven.ant.tasks.bootstrap.location" value="http://apache.inetbridge.net/maven/binaries/maven-ant-tasks-2.0.11.jar" />
<available property="maven.ant.tasks.jar.exists" file="${maven.ant.tasks.jar}" />
<!-- This will download the "latest version" of the maven-ant-tasks if needed -->
<target name="bootstrap_maven" unless="maven.ant.tasks.jar.exists">
<get src="${maven.ant.tasks.bootstrap.location}" dest="${maven.ant.tasks.jar}" />
</target>
<!-- This will initialize all the maven ant tasks and download the requested artifact and its dependencies -->
<target name="get" depends="bootstrap_maven" xmlns:artifact="urn:maven-artifact-ant">
<path id="maven.ant.tasks.classpath" path="${maven.ant.tasks.jar}" />
<typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant" classpathref="maven.ant.tasks.classpath" />
<condition property="maven.repo.local" value="${maven.repo.local}" else="${user.home}/.m2/repository">
<isset property="maven.repo.local" />
</condition>
<echo>maven.repo.local=${maven.repo.local}</echo>
<artifact:localRepository id="local.repository" path="${maven.repo.local}" />
<artifact:dependencies pathId="build.classpath" sourcesFilesetId="sources.id">
<dependency groupId="${mvn.get.groupId}" artifactId="${mvn.get.artifactId}" version="${mvn.get.version}"/>
<localRepository refid="local.repository" />
</artifact:dependencies>
</target>
</project>
使用如下命令行會做你想要什麼:
ant -Dmvn.get.groupId=commons-httpclient -Dmvn.get.artifactId=commons-httpclient -Dmvn.get.version=3.1 -Dmaven.repo.local=.
的靈感這個來自這個excellent blog post.
+0
多數民衆贊成在一個好主意,但我正在尋找這是tuler回答。 – Mauli 2009-06-18 17:56:57
0
我用下面的shell腳本安裝一個共享的記錄替代,但在這種情況下,我已經有罐子手:
#! /bin/sh mvn install:install-file \ -DgroupId=commons-logging \ -DartifactId=commons-logging \ -Dversion=99.0-does-not-exist \ -Dpackaging=jar \ -DcreateChecksum=true \ -DpomFile=commons-logging-99.0-does-not-exist.pom \ -Dfile=commons-logging-99.0-does-not-exist.jar mvn install:install-file \ -DgroupId=commons-logging \ -DartifactId=commons-logging-api \ -Dversion=99.0-does-not-exist \ -Dpackaging=jar \ -DcreateChecksum=true \ -DpomFile=commons-logging-api-99.0-does-not-exist.pom \ -Dfile=commons-logging-api-99.0-does-not-exist.jar
當你說「本地存儲庫」時,你的意思是你自己,作爲一個人,也就是說,在Unix上是〜/ .m2中的一個,還是你的公司存儲庫?這是一個不同的問題。對於前者,我有抖動;只需添加條目到你的pom。對於後者,請檢查存儲庫服務器的文檔以獲取如何獲取中央副本。
相關問題
- 1. 要求IntelliJ IDEA將構建的工件安裝到maven本地存儲庫中
- 2. 是否可以將遠程存儲裝載到iOS的本地文件系統?
- 3. Maven - 將工件安裝到Nexus存儲庫
- 4. 是否可以將非Maven庫添加到artifactory存儲庫?
- 5. 是否可以將本地存儲值加載到推文中?
- 6. maven有可能使用其他本地存儲庫來安裝工件嗎?
- 7. 是否可以將blob存儲裝載到本地計算機進行部署?
- 8. 本地存儲庫的maven工件
- 9. 下載Maven構件,並安裝到一個特定的本地存儲庫(不.M2)
- 10. 從本地Maven倉庫下載工件
- 11. 將本地Maven存儲庫中的工件部署到遠程存儲庫
- 12. 是否存在可以透明地構建請求但缺失本地構件的Maven存儲庫?
- 13. 如何將工件安裝到本地gradle文件存儲中
- 14. 在本地存儲中下載.xap文件,並以編程方式安裝它
- 15. 何時可以安全刪除本地Maven存儲庫?
- 16. 如何將源代碼發佈到安裝到本地Maven存儲庫?
- 17. 如何將工件從第三方存儲庫下載到本地存儲庫並稍後使用IT?
- 18. autopy是否可以在本地安裝?
- 19. 手動下載並安裝Maven插件
- 20. 手動下載並安裝Maven插件
- 21. 將wsdl文件安裝到Maven存儲庫中
- 22. 使用settings.xml將jar文件下載到本地.m2存儲庫
- 23. 是否可以告訴用戶是否打開或下載了一個文件?
- 24. 將本地安裝的工件重新部署到遠程存儲庫
- 25. 的Maven - Maven的戰爭插件生成JAR並安裝到本地Maven倉庫
- 26. Scala Eclipse:本地maven存儲庫不下載scala庫
- 27. Gradle下載依賴關係合併到maven本地存儲庫中?
- 28. 確定刪除本地git存儲庫是否安全
- 29. 可以告訴AIR是否已插入USB存儲設備
- 30. 如何在linux maven本地存儲庫上安裝ojdbc6 jar?
這就是我正在尋找。 – Mauli 2009-06-18 17:56:04