目前我們使用FTP來維護構建工件分發和第三方產品(僅供內部使用)。文件是docs(HTML/pdf/chm/...),libs(.dll/.so/.a/.jar/...),程序(.exe/.jar/...)和其他任何東西。它們不限於Java/.NET,可以來自不同的文化(固件,驅動程序,移動/工作站,GUI,Win/Linux/Mac/Solaris/AIX等)。建議構建工件庫管理器
爲了orginize hierarhy我們使用這樣的路徑:
ftp://3pp/VENDOR/PRODUCT/VERSION/... ftp://3pp/opensource/PACKAGE-x.x.x.tar.bz2 ftp://dist/PRODUCT/VERSION/...
爲了保持工件的描述中,我們使用自述和CHANGES平原測試文件(reStructuredText的)。
此模式中缺少什麼?
- 缺少權限(任何人都可能損壞存儲)。
- 缺少依賴關係跟蹤(因此每個構建文件必須更新,如果版本依賴關係已更改)。
- 缺少抓取活動(某些文件似乎不再需要,但我們不知道哪個)。
我不是在深入尋找現有解決方案。一些包管理器像rpm/dpkg,聽說Maven回購等...
請推薦Build Artifact Repository Managers。也很高興聽到缺點和限制。
UPDATE
- https://en.wikipedia.org/wiki/Binary_repository_manager
- https://binary-repositories-comparison.github.io/
** Apache Archiva **僅與Java世界相關...... – gavenkoa
此工具僅集成**到Java構建工具... – gavenkoa
絕對不是這樣。您可以在這些存儲庫中存儲任何類型的軟件工件。 Java可能有最成熟的工具,但沒有限制阻止您將這些存儲庫與其他技術一起使用。看看Sonatype關於存儲庫管理的書籍,以瞭解工件存儲庫的工作原理以及如何將它們集成到工作流程中。 http://www.sonatype.com/books/nexus-book –