假设我有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