从 Jenkins 将 Maven 构建发布到 Artifactory

Publish Maven build to Artifactory from Jenkins

我在 Jenkins 中有一个构建设置,它将一个简单的 Git 托管 Maven 项目编译成一个 jar 并将该 jar 发布到 Artifactory 中。

  1. 我如何设置构建作业来标记用于构建的源,例如一个内部版本号(或类似的),以便以后能够识别哪些源完全进入了这个特定的版本。这个构建标签也应该在 git 的远程存储库中可见,而不仅仅是在 Jenkins 构建服务器上的本地版本中。

  2. 理想情况下,我还想将此 "build tag" 打包到 jar 中(我想是在 jar 中的一个文件中),这样我就可以始终将使用源文件的 jar 关联起来创建这个罐子。

非常感谢您的帮助。

只需使用 Jenkins Artifactory Plugin or the Maven Artifactory Plugin.

两者都会生成一个 BuildInfo metadata,其中包含您需要的信息以及更多信息。所有这些信息都附加到工件上并使工件可追溯,而无需将此信息嵌入文件名或档案本身。

请花点时间观看this screencast。它详细解释了您可以获得什么以及为什么它很重要。

  1. How can I setup the build job to tag the sources which were used for the build with e.g. a build number (or similar), in order to later be able to identify which sources went exactly into this particular build. This build tag should also be visible in git's remote repository, not just in the local version on the Jenkins build server.

这可以使用标准 Git 插件来完成。在配置要克隆的存储库的位置下方,单击 "Additional Behaviours" 上的 "Add",然后选择 "Create a tag for every build"

  1. Ideally I'd also like to package this "build tag" into the jar (I suppose in a file inside the jar) so I can always correlate the jar to which source files were used to create this jar.

此标记应在构建步骤中作为环境变量可用(我认为它称为 GIT_TAG)- 您可以让现有的构建步骤将此值放入文件或添加预构建"Execute Shell" 执行如下操作的步骤:

$ echo $GIT_TAG > git.tag