我最近对Spring Social产生了兴趣,并且作为我学习道路的一部分,我试图集成仍在孵化器模式下的Github模块 。 不幸的是,这个模块似乎已经被遗忘了,它对核心模块的依赖使用了它的旧版本。 并且由于我使用了该内核的最新版本,因此Maven解析了一个版本以放入WAR软件包的WEB-INF / lib文件夹中。 不幸的是,它在运行时效果不佳。
下图显示了这种情况:
我本可以从传递依赖中排除旧版本,但是我很懒,Maven并没有使它变得容易。 相反,我决定只是将Github模块升级到最新版本,然后将其安装在本地存储库中。 事实证明,这很容易,因为它与最新版本的内核没有任何不兼容-我什至创建了一个pull请求 。 这是更新的情况:
不幸的是,如果我现在决定分发此版本的应用程序,那么任何人都将无法构建或运行它,因为只有本地仓库中有可用的“已修补”(最新)版本的Github模块。 我可以按照更新的源进行分发,但这意味着您必须先构建它并将其安装到本地存储库中,然后才能使用我的应用。
Bintray进行救援! Bintray是一个二进制存储库,能够托管任何类型的二进制文件:jar,wars,deb等。 它在线托管,对于开源项目免费,非常适合我的用例。 这就是我在Bintray上上传我的工件的方式。
- 创建一个帐户
使用可用的身份验证提供程序-Github,Twitter或Google +,Bintray可以很容易地创建这样的帐户。 或者,可以使用密码创建一个老式帐户。
- 创建工件
一旦通过身份验证,就需要创建工件。 选择默认的Maven存储库,可以在https://bintray.com/${username}/maven中找到它。 然后,单击右边框上的大的Add New Package按钮。 在打开的页面上,填写必填信息。 该包可以命名为任意名称,我选择使用Maven工件标识符:
spring-social-github
。- 创建一个版本
-
文件只能添加到版本中,因此需要首先创建版本。 在软件包详细信息页面上,单击“新版本”链接(第二列,第一行)。
在打开的页面上,填写版本名称。 请注意,不接受快照,仅通过
-SNAPSHOT
后缀对其进行检查。 我选择使用1.0.0.BUILD
。 - 上传文件
创建版本后,文件终于可以上传了。 在顶部栏中,单击“上传文件”按钮。 拖放所有所需的文件,当然是主要的JAR和POM,但它也可以包含源JAR和Javadoc JAR。 注意Target Repository Path字段:应将其设置为Maven工件的逻辑路径,包括
groupId
,artifactId
和用斜杠分隔的version
。 例如,我的用例应解析为org/springframework/social/spring-social-github/1.0.0.BUILD
。 请注意,您可以等待上传的文件,而不是填写此字段,因为Bintray会检测到该上传,分析POM并建议自动进行设置:如果合适-可能的话,只接受该建议。- 发布
-
上载文件还不够,因为这些文件在发布之前是临时的 。 有一个大的警告警告:只需单击右侧边框上的“发布”链接即可。
此时,您只需要在POM中添加Bintray存储库。
<repositories>
<repository>
<id> bintray </id>
<url> http://dl.bintray.com/nfrankel/maven </url>
<snapshots>
<enabled> true </enabled>
</snapshots>
</repository>
</repositories>
翻译自: https://blog.frankel.ch/better-developer-to-developer-collaboration-with-bintray/