2012-10-24 28 views
22

我的雲服務器位於世界各地的獨立數據中心。每個數據中心都與其他數據中心分開。Nexus或Artifactory可以存儲簡單的tar.gz工件嗎?

我正在尋找一種簡單的方法,可以輕鬆而一致地在每個區域中將工件部署到各個服務器羣集(可能運行不同版本的軟件,即開發,測試和生產羣集)。在我看來,工件服務器是我需要的,因爲我可以在雲服務器上執行安裝腳本,從而降低正確的軟件工件。

現在,我在操作方面工作。我不關心構建或管理軟件構建依賴關係。我只需要一個工件服務器,我可以在其中存儲我的軟件包的所有不同版本以供以後訪問。踢球者是,我有幾種不同類型的工件可以存儲。

  • Shell腳本
  • Python腳本
  • 木偶表現
  • Debian的文件(通常爲交付多debians的tar.gz文件)

可以NEXUS或Artifactory的管理所有這些包的類型,還是我應該朝不同的方向看?我並不反對將make文件添加到僅生成tar.gz文件的shell腳本項目中。我只是不想沿着建立工件庫的路徑走下去,最終,一個小腳本,wget和一個Apache服務器可以正常工作。

回答

22

雙方Artifactory的Nexus可以處理任何類型的文件,因爲它們都是「二進制庫經理」

儘管如此,Nexus可以在技術上存儲任何文件,但缺乏對不符合Maven存儲庫佈局的二進制文件的支持。例如,這些文件不會被索引,也不能在搜索中檢索;此外,如果非Maven工件在他們的道路妨礙模塊的信息,那麼目前Artifactory的是唯一的存儲庫可以利用這一點,並允許基於版本操作上的工件(例如,下載最新版本的查詢)

雖然這兩種工具已經開始通過解決世界上的一個問題,對智能二進制管理的需求已經在許多其他領域中被認識到,operations included

二進制文件確實需要一個專門的管理員,雖然網絡共享/ SCM /文件服務器似乎是一個可行的選擇,他們只是不規模

另請參閱my answer to a similar question瞭解經理對其他臨時解決方案的一些好處。

4

是的,你可以上傳非jar文件。例如:

mvn deploy:deploy-file -DgroupId=org.group.id -DartifactId=artifact-id -Dversion=0.0.0.1-SNAPSHOT -Dpackaging=tar.gz -DrepositoryId=repository-id -Durl=http://url -Dfile=localfile-0.0.0.1-SNAPSHOT.tar.gz 

的Nexus的新版本將通過驗證他們正確處理形成一定的文件,如焦油,SWF等。雖然這可能會導致意外或不想要的行爲。

這是最好的方式去...只有你可以根據你的用例說。諸如工件變化頻率,網絡延遲時間和其他因素可以制定或打破策略。

裁判:

https://stackoverflow.com/a/33311645/32453

http://betterlogic.com/roger/2012/04/mavennexus-upload-tgztar-gz-file/

+0

感謝您的鏈接。很有幫助! –

0

可以(見其他答案)。您也可以參考它們例如像這樣(儘管一個例子將是很好):

你可以參考/使用它們像這樣的插件:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <executions> 
     <execution> 
     <id>copy</id> 
     <phase>package</phase> 
     <goals> 
      <goal>copy</goal> 
     </goals> 
     <configuration> 
      <artifactItems> 
      <artifactItem> 
       <groupId>org.apache</groupId> 
       <artifactId>activemq-distro</artifactId> 
       <version>5.7.0</version> 
       <type>gz</type> 
       <overWrite>true</overWrite> 
       <outputDirectory>${project.build.directory}</outputDirectory> 
      </artifactItem> 
      </artifactItems> 
      <!-- other configurations here --> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
相關問題