2016-09-14 98 views
0

我正在处理大量项目,这些项目都是大型项目(管道)的一部分,因此需要经常一起进行测试。手动测试并不如他们应该做的那么好,所以我决定在将来使用Gradle + Jenkins CI来运行测试。我的第一个测试是成功的,单元测试等运行良好,Jenkins构建了我想要部署得很好的JAR文件。由于我所有的项目都是开源的,并且可以在GitHub上使用,所以我很想设置在各个(子)项目的GitHub发布页面上发布,例如,是这样的:Gradle/Jenkins JAR发布到GitHub

  • 我发展,犯了一个Git标签
  • 詹金斯通过挂钩看到这个,运行摇篮脚本来构建的东西,一旦试验成功发布在我的项目中创建一个新的JAR文件在GitHub上发布版本

不幸的是,这不像预期的那样工作,例如使用Plugin here,例如只推送打包的源代码而不是JAR文件。否则,这工作得很好,我可能只是监督一些事情?

有人有这方面的经验吗?

+1

为什么您需要将生成的JAR文件与您的代码一起推送到您的Git存储库中?请注意,在您的Git仓库中推送大量文件(如jar)并不是一个好习惯,您应该将它们发送到其他地方,也可以放在Repository Manager(例如[Artifactory])中(https://www.jfrog.com/open-源/)... – Pom12

+0

嗨Pom12 - 我觉得我的第一个评论不够具体:我不想提交我的内置JAR文件到我自己的仓库,而是使用例如GitHub上项目的“Release”部分为最终用户发布JAR文件。当然,我可以依赖Bintray,但我宁愿将我构建的JAR推送到项目特定版本部分,以便为最终用户提供更好的可见性。 – w3b1x

回答

0

我想你错了什么Github release是。从Github的角度来看,释放并不是一个你要部署你的arfifact的文件夹(例如你的内置Jar),但基本上只是一个指向某个提交的Git标记,并且说“好吧,我认为这个提交d215465454是我的版本1.2.3“。它只是一个指向提交的指针,因此您可以随时查找任何特定“发布”的Git历史记录。有关更多信息,请参阅Git excellent Tagging documentation

此外,您可能不应该将实际的jar暴露给最终用户。相反,您可以依靠Bintray或Artifactory来部署实际的jar工件,并且最终用户可以配置他们的gradle构建文件以依赖于您的jar。