2016-03-09 58 views
0

在我的Nexus中,我自己的項目位於託管庫「Snapshots」下。我必須將此存儲庫分配給「公共存儲庫」;否則,我不能用mvn編譯我自己的項目。這將是錯誤消息:不想讓我自己的Nexus上的工件公開

[ERROR] Failed to execute goal on project bword: Could not resolve dependencies for project com.bbword.core:bword:war:0.0.1-SNAPSHOT: Could not find artifact com.bbword.core:tts-app:jar:0.0.1-SNAPSHOT in nexus (http://www.bbword.com:8081/nexus/content/groups/public) -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 

當然,我不希望在互聯網上的公開信息庫我自己的項目。我可能會錯哪個配置?

這是我的settings.xml:

<?xml version="1.0"?> 
<settings> 
    <mirrors> 
    <mirror> 
     <id>nexus</id> 
     <mirrorOf>*</mirrorOf> 
     <url>http://www.bbword.com:8081/nexus/content/groups/public</url> 
    </mirror> 
    </mirrors> 
    <servers> 
    <server> 
     <id>nexus</id> 
     <username>admin</username> 
     <password>bbword</password> 
    </server> 
    </servers> 
    <profiles> 
    <profile> 
     <id>nexus</id> 
     <!--Enable snapshots for the built in central repo to direct --> 
     <!--all requests to nexus via the mirror --> 
     <repositories> 
     <repository> 
      <id>central</id> 
      <url>http://central</url> 
      <releases><enabled>true</enabled></releases> 
      <snapshots><enabled>true</enabled></snapshots> 
     </repository> 
     </repositories> 
     <pluginRepositories> 
     <pluginRepository> 
      <id>central</id> 
      <url>http://central</url> 
      <releases><enabled>true</enabled></releases> 
      <snapshots><enabled>true</enabled></snapshots> 
     </pluginRepository> 
     </pluginRepositories> 
    </profile> 
    </profiles> 
    <activeProfiles> 
    <!--make the profile active all the time --> 
    <activeProfile>nexus</activeProfile> 
    </activeProfiles> 
</settings> 

編輯:附圖片爲更好的說明。
enter image description here

我的項目是在「快照」下。

修改:新附件瞭解詳情。

enter image description here

+0

所以使用本地的Nexus存儲這樣的事情或做內的Nexus一個單獨的組,其不是公衆可以訪問的。 – khmarbaise

+0

@khmarbaise,請查看圖片瞭解當前狀態。你的意思是什麼「獨立小組」,我該怎麼做? 「快照」目前不在「公共存儲庫」之下。 – user697911

+0

製作一個新的存儲庫組請參見:https://books.sonatype.com/nexus-book/reference/config-sect-new-repo.html並將該快照添加到該組中... – khmarbaise

回答

0

你有不同的地方能夠控制的是公衆從互聯網訪問:

  • 你可以告訴紐帶就是倉庫是私有,但Maven將不能夠使用它
  • 你可以告訴nexus知識庫是公開的,並隱藏你自己的網絡連接。

當你配置你自己的本地連結時,什麼是公有是什麼是公共的是nexus在它自己的服務器上顯示的。這並不意味着它會自動上傳到maven central或任何其他公共連接服務器。

但如果這是你自己的關係,你沒有理由讓服務器本身從互聯網和防火牆(或您的ISP路由器)訪問應該簡單地不允許外部調用到這裏。這對於您自己的項目來說不會在互聯網的公共存儲庫下面存在

+0

如何不讓外部訪問我自己的聯繫? – user697911

+0

很難說不知道主機連接的機器如何連接到互聯網。您不會在企業網絡,家庭或基礎架構即服務雲虛擬機中使用相同的解決方案... –

0

這樣做至少有兩種方法。兩者都需要管理員權限。

可應用的方法:您創建一個新的託管存儲庫並使用憑據進行保護這裏有一篇文章描述如何:(http://minibiti.blogspot.ca/2012/03/private-repositories-in-sonatype-nexus.html) 您甚至可以禁用該存儲庫的用戶界面。

組網方式: 您需要訪問您的關係,但是從互聯網隔離開來。當然,如果你這樣做,不要代理中央存儲庫,也不要將其用作鏡像。

此外,第一個解決方案的帖子建議您以純文本形式輸入密碼。我不喜歡這個。看看這個職位行家加密https://maven.apache.org/guides/mini/guide-encryption.html

編輯: 這裏如何增加憑證的Settings.XML

<repository> 
        <id>ID</id> 
        <name>name</name> 
        <url>URL</url> 
        <snapshots> 
         <enabled>false</enabled> 
        </snapshots> 
        <releases> 
         <enabled>true</enabled> 
        </releases> 
       </repository> 

<server> 
      <id>ID</id> 
      <username>USER</username> 
      <password>PASSWORD</password> 
     </server> 
+0

我遵循第一個解決方案,將匿名限制爲公共存儲庫,並將其自己的項目放在非 - 公共(非私有)託管的存儲庫。不過,我仍然可以從互聯網瀏覽它:http://www.bombword.com:8081/nexus/content/repositories/snapshots/com/bombword/core/bword。爲什麼是這樣? – user697911

+0

鏈接返回給我一個401拒絕訪問,也http://www.bombword.com:8081/nexus/#welcome,我看不到任何存儲庫 – drgn

+0

這是真的。我註銷並且無需首先登錄就無法再訪問它。但另一個問題是我無法通過maven訪問我自己的項目。使用mvn編譯,我收到了這個錯誤:[錯誤]無法執行項目目標bword:無法解析項目的依賴關係com.bombword.core:bword:war:0.0.1-SNAPSHOT:T – user697911