Java 将Maven build从Jenkins发布到Artifactory

Java 将Maven build从Jenkins发布到Artifactory,java,git,maven,jenkins,artifactory,Java,Git,Maven,Jenkins,Artifactory,我在Jenkins中有一个构建设置,它将一个简单的Git托管的Maven项目编译成一个jar,并将jar发布到Artifactory中 我如何设置构建作业,以标记用于构建的源,例如,构建编号(或类似编号),以便以后能够识别哪些源准确进入该特定构建。这个构建标记也应该在git的远程存储库中可见,而不仅仅是在Jenkins构建服务器的本地版本中 理想情况下,我还希望将这个“build标记”打包到jar中(我假设在jar中的一个文件中),这样我就可以始终将用于创建这个jar的源文件与jar关联起来 非

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

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

  • 理想情况下,我还希望将这个“build标记”打包到jar中(我假设在jar中的一个文件中),这样我就可以始终将用于创建这个jar的源文件与jar关联起来

  • 非常感谢你的帮助

    只需使用或

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

    请花点时间看。它详细解释了你能得到什么以及为什么它很重要

  • 我如何设置构建作业,以标记用于构建的源,例如,构建编号(或类似编号),以便以后能够识别哪些源准确进入该特定构建。这个构建标记也应该在git的远程存储库中可见,而不仅仅是在Jenkins构建服务器的本地版本中 这可以使用标准Git插件来完成。在将存储库配置为克隆的位置下方,单击“其他行为”上的“添加”,然后选择“为每个构建创建标记”

  • 理想情况下,我还希望将这个“build标记”打包到jar中(我假设在jar中的一个文件中),这样我就可以始终将用于创建这个jar的源文件与jar关联起来 然后,在构建步骤中,该标记应作为环境变量可用(我认为它被称为GIT_标记)-您可以让现有构建步骤将该值放入文件中,或添加预构建“Execute Shell”步骤,该步骤执行如下操作:

    $ echo $GIT_TAG > git.tag
    

    谢谢“为每个构建创建标记”选项是否也会将标记推回git远程服务器(源服务器),或者是否需要采取额外的步骤来推回标记?我相信是这样(我看不出它有什么用处),但我现在无法轻松检查-尝试一下,看看会发生什么。我尝试过,但“为每个构建创建标记”并没有将标记推回源服务器。我最终使用Git Publisher作为构建后操作来创建和推送标记,而不是“为每个构建创建标记”的前一步。不幸的是,关于Git Publisher的最新文档并不多,所以我花了一段时间才弄明白如何配置它。非常感谢。我在Artifactory中看到了BuildInfo元数据,这是很好的信息。唯一的缺点是,当我查看部署代码jar的服务器时,我与Artifactory没有关联,具体来说,我不一定知道是部署了上周的jar还是部署了前一周的jar,特别是当代码仍处于快照阶段时,文件名不一定会被内部版本号追加。这是一个很好的注释!由于Artifactory使用基于校验和的存储,所以按校验和搜索是获取任何文件并将其与您拥有的大量元数据关联的最简单、最快速的方法。只需运行
    md5 filename
    ,进入校验和搜索,从那里进入结果、构建选项卡上的树浏览器,然后打开!您确切地知道这个文件是如何创建的!