2012-01-06 85 views
3

我正嘗試使用maven命令行部署一個EXE文件,並將其壓縮的源文件複製到Sonatype Nexus。文件必須部署爲SNAPSHOT。從Maven命令行向Nexus部署SNAPSHOT工件和源代碼

所以,我有2個文件:

-testXYZ.exe and source file 
-testXYZ.zip 

使用Maven 2.2.1和命令說明如下:

mvn deploy:deploy-file -Durl=file:///home/me/m2-repo \ 
         -DrepositoryId=some.repo.id \ 
         -Dfile=./path/to/artifact-name-1.0.jar \ 
         -DpomFile=./path/to/pom.xml \ 
         -Dsources=./path/to/artifact-name-1.0-sources.jar \ 
         -Djavadoc=./path/to/artifact-name-1.0-javadoc.jar 

我可以部署EXE,但不能部署源,因爲行家2.2.1正在使用deploy-plugin v2.5,直到v2.7才支持該命令。 我不允許使用更新版本的maven,所以我嘗試了不同的方法。

使用這兩個後續命令我可以部署這兩個工件,但是,源不能從nexus下載。

call mvn deploy:deploy-file -DgroupId=com.xyz -DartifactId=testXYZ -Dversion=1.1.116-SNAPSHOT -Dpackaging=zip -Dfile=testXYZ.zip -Dclassifier=sources -Durl=http://build:8081/nexus/content/repositories/snapshots -DrepositoryId=nexus 
call mvn deploy:deploy-file -DgroupId=com.xyz -DartifactId=testXYZ -Dversion=1.1.116-SNAPSHOT -Dpackaging=exe -Dfile=testXYZ.exe -Durl=http://build:8081/nexus/content/repositories/snapshots -DrepositoryId=nexus 

部署後,我搜索testXYZ並點擊工件源下載鏈接。 的Nexus說:

com.xyz:testXYZ:1.1.116-SNAPSHOT:c=sources:e=jar 「項目上的路徑 未找到 」「!」

問題是行家的方式上傳這些文物:

Line form log file while source is uploading: 
Uploaded: http://build:8081/nexus/content/repositories/snapshots/com/xyz/testXYZ/1.1.116-SNAPSHOT/testXYZ-1.1.116-20120106.111705-1-sources.zip 
Line form log file while Main artifact is uploading: 
Uploaded: http://build:8081/nexus/content/repositories/snapshots/com/xyz/testXYZ/1.1.116-SNAPSHOT/testXYZ-1.1.116-20120106.111709-2.exe 

通知111705-1和111705-2。如果我們希望Nexus能夠生成正確的鏈接,則最後一個數字必須相同。

這種方法描述如下:

Deploying an artifact, its sources and javadoc using maven's deploy:deploy-file plugin

這裏:

http://maven.apache.org/plugins/maven-install-plugin/examples/installing-secondary-artifacts.html

,它工作固定版本(例如1.1.116),但不快照。

如果使用固定版本,可以將Exe和Zip文件部署到Nexus(如jar文件)。

所以,問題是: 是否有部署的命令行神器源快照Sonatype的Nexus和可以肯定的是,這些文件可以通過點擊來源和文物鏈接下載的方法嗎?

注意: 如果我禁用時間戳後綴,這可以工作,但我不想這樣做。

-DuniqueVersion=false 

感謝,

馬裏安

+0

看看http://stackoverflow.com/questions/4725668/how-to-deploy-snapshot-with-sources-and-javadoc – Noremac 2013-01-23 16:17:48

回答

0

我發現這個問題的部分解決方案。我可以這樣調用Maven的部署,插件的特定版本:

mvn org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file... 

這樣一來,文物和源快照可以被部署到的Nexus避免與下載的任何問題,但它表現得像

- DuniqueVersion = false

仍然存在。