假設我有Maven的/ Eclipse的兩個Java項目:捆綁使用Maven非開源依賴
- 在GitHub上託管的開源應用程序
- 一個小型私人圖書館,包括實用功能,這是不開源的(但我有權利修改,構建和編譯的形式如重新分配作爲一個.jar文件)
我想有可能使他人建立,修改和運行應用程序(如果他們喜歡,可以回饋給開源項目!),但這意味着他們也需要庫作爲依賴項。
我想讓事情變得簡單,這樣構建對我自己和應用程序的用戶來說都很簡單。
使這項工作最實用的方法是什麼?
假設我有Maven的/ Eclipse的兩個Java項目:捆綁使用Maven非開源依賴
我想有可能使他人建立,修改和運行應用程序(如果他們喜歡,可以回饋給開源項目!),但這意味着他們也需要庫作爲依賴項。
我想讓事情變得簡單,這樣構建對我自己和應用程序的用戶來說都很簡單。
使這項工作最實用的方法是什麼?
在GitHub上提供您自己的Maven存儲庫,以分發允許您從項目(pom.xml)重新分發和引用它的封閉源代碼庫。
http://cemerick.com/2010/08/24/hosting-maven-repos-on-github給出了一個很好的介紹如何在GitHub上設置存儲庫。你應該知道這篇文章中提到的微庫的警告。
當使用Maven建議使用Maven倉庫管理,如Nexus和配置設置文件如下所述:
https://help.sonatype.com/display/NXRM3/Maven+Repositories#MavenRepositories-ConfiguringApacheMaven
在你的情況這額外的好處就是你可以使用Maven Repository Manager來承載任何私人工件。
一個非常簡單的解決方案是將您的私有庫放置到您的項目中(例如<project>/lib/library-1.0.jar
),並將其包含爲system依賴項。你可以把它包含在你的pom中。
<dependencies>
<dependency>
<groupId>my.private</groupId>
<artifactId>library</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/library-1.0.jar</systemPath>
</dependency>
</dependencies>
注意:一個系統的依賴性不transitiv!
從文檔
此範圍相似,除了你必須提供包含它明確的JAR來提供。工件始終可用,並且不會在存儲庫中查找。
+1這是更好的方式來做到這一點! –
有沒有什麼方法可以查看誰或多少人從github下載工件?它看起來像github只會在您複製回購時收集統計信息。 – cosbor11