2016-05-31 116 views
47

安裝Nexus Repository Manager OSS 3後,我看不到選項Artifact Upload可通過網頁上傳工件。如何在Nexus Repository Manager中手動部署工件OSS 3

在Nexus Repository Manager OSS 2.13中,可以選擇執行該操作。

任何人都可以告訴我如何將工件上載到Nexus 3中的託管存儲庫?

+1

在我的答案[這裏](http://stackoverflow.com/a/40130685/2614103)我解釋了兩種方法 - 對於http和https。 – grajsek

+14

爲什麼他們會忽略這個重要的功能? –

+8

由於上傳GUI仍不是Nexus 3的一部分,因此我們創建了一個輕量級解決方案來提供缺少的界面。您可以在Nexus3實例的原始存儲庫中託管一個html頁面,當您從瀏覽器訪問該頁面時,它將提供一個類似於Nexus2中的上傳GUI。該項目可以在[GitHub](https://github.com/TOPdesk/nexus3-artifact-upload)上找到,並提供詳細的文檔。此答案時發佈的版本也支持GAV樣式和原始上傳。 –

回答

17

您可以通過其本地發佈功能(例如maven deploy,npm publish)上傳工件。

您還可以通過簡單的捲曲請求將製品上傳到「原始」存儲庫,例如,

curl --fail -u admin:admin123 --upload-file foo.jar 'http://my-nexus-server.com:8081/repository/my-raw-repo/' 
+2

是的,我可以通過'mvn deploy'來完成這個任務,它完美的工作,但我沒有意識到他們從最新的'Nexus'中刪除了'Artifact Upload'選項。 –

+1

@PawełGłowacz在3.x上傳功能的Jira問題在這裏:https://issues.sonatype.org/browse/NEXUS-10121 – mvreijn

40

我正在使用maven部署文件。

mvn deploy:deploy-file -DgroupId=my.group.id \ 
    -DartifactId=my-artifact-id \ 
    -Dversion=1.0.0.1 \ 
    -Dpackaging=jar \ 
    -Dfile=foo.jar \ 
    -DgeneratePom=true \ 
    -DrepositoryId=my-repo \ 
    -Durl=http://my-nexus-server.com:8081/repository/maven-releases/ 

UPDATE: 由於使用引號網址原因NoSuchElementException異常

評論說,但我有我的行家(〜/ .m2目錄/ settings.xml中)添加服務器配置。

<servers> 
    <server> 
    <id>my-repo</id> 
    <username>admin</username> 
    <password>admin123</password> 
    </server> 
</servers> 

參考文獻:

Maven Apache - Guide 3rd party jars

+0

我是否必須啓用或安裝任何要部署的東西?當我嘗試時出現以下錯誤: 2016年11月29日上午11:27:31 org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec執行 信息:I/O異常(java。 net.SocketException)處理請求時收到{} - > http://127.0.0.1:8081:破管 等等... –

+0

不支持純粹的maven。你有代理嗎?也許你需要忽略localhost/127.0.0.1那裏/或者這個IP和端口是否正確?我會研究其他的解決方法來解決這個問題。 – bpedroso

+0

我認爲問題在於我使用的是Nexus 3,而不是Nexus 2. –

2

我的團隊建立了一個命令行工具上傳文物承上啓下3.x的知識庫,也許這將有助於你 - Maven Artifacts Uploader

+0

但僅限Windows用戶? – TOUDIdel

+0

在這一刻,是的 –

1

我的團隊使用GradleNexus OSS 3.5.2,

我已經發現一個溶液:從locakhost上傳artyfacts(I檢查的Nexus文檔,並沒有發現任何關於從文件夾上傳工件)=>我已經共享目錄(使用apache httpd的)和連接的一個創建新的Nexus代理存儲庫。現在當我想我自己的工件我可以上傳到我的遠程服務器共享目錄。

也許有人覺得我的解決方案有用: enter image description here

我的問題是在這裏Is it possible to deploy artifacts from local folder in Sonatype Nexus Repository Manager 3.x

0

這在的Nexus版本3.9.0實現。

+1

真的嗎?你只需要用一個班輪迴答一個老問題。 –

+0

這不提供問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/19045450) – n2o

+0

對不起,格蘭特,我想評論它,但我沒有足夠的聲望。我認爲像這樣的答案就像關閉這個線程。我應該刪除這個答案嗎? –