在我们的构建和部署基础结构中,我们有一个Jenkins的工作来构建我们的多模块Maven项目,最近已经将结果工件(包括一个总括tarball)部署到Nexus。然后另一个作业(有时由成功的构建作业触发)运行deploy,它根据构建作业运行的POM从Nexus提取所需的工件(构建作业归档POM,以便通过使用dependency:Copy goal检索tarball)。对于发行版,这很好,如果需要回滚场景,我们甚至可以部署更早的版本。但是,对于快照构建,这是分解的,因为除了工件是-SNAPSHOT
之外,POM不包含任何版本标识符。
[INFO] Uploading: http://nexus.eng.company.com/nexus/content/repositories/snapshots/com/company/application/application-dist/4.19.3-SNAPSHOT/application-dist-4.19.3-20160819.223606-7-eng.tar.gz
[INFO] Uploaded: http://nexus.eng.company.com/nexus/content/repositories/snapshots/com/company/application/application-dist/4.19.3-SNAPSHOT/application-dist-4.19.3-20160819.223606-7-eng.tar.gz (109687 KB at 413.1 KB/sec)
但是有没有更好的办法呢?我们特别试图允许的情况是开发人员部署早期构建(通常是部署特性分支构建),但目前这是不可能的,除非我找到一种方法来获取datestamped版本标识符。
一个可能的解决方案是创建一个动态属性来使用分类器
。在这种情况下,build-helper-maven-plugin
可以提供帮助,例如:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.10</version>
<executions>
<execution>
<id>regex-property</id>
<goals>
<goal>timestamp-property</goal>
</goals>
<configuration>
<name>custom.classifier</name>
<pattern>yyyy-MM-dd_HH-mm-ss.SSS</pattern>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<classifier>${custom.classifier}</classifier>
</configuration>
</plugin>
上面我们创建了一个新的属性custom.classifier
,并用pattern
元素定义的时间戳填充它(精心编制,这样就不会出现空格或无效字符,因为classifier将成为最终文件名的一部分)。
然后,maven-jar-plugin
用例相应地设置分类器。
然后,您可以将上面的行为进一步包装在Maven概要文件中,以便只为CI作业激活它。
我想将jar发布到Nexus快照存储库。 如果你知道如何实现,我很想知道。 我将从詹金斯的工作中发布jar。 我想发布到快照存储库,但我无法调查/实现各种事情。 根据我的研究,似乎已经有了下面的Jenkins插件 null 卷曲时的错误信息如下所示。 谢谢你。
我们正在使用Nexus来部署我们的快照工件。我们的构建服务器在每次构建期间使用以下命令部署它们:mvn deploy。因此,在每次构建时都会部署工件的较新版本。已经有大约几十个工件被部署到存储库,当然我们只需要最后一个工件的问题。有什么方法可以限制Nexus中部署的快照工件的数量吗?谢谢你的帮助,迈克尔
问题内容: 我们正在使用Nexus部署快照工件。我们的构建服务器使用以下命令在每次构建期间部署它们:mvn deploy。结果,在每个构建上都部署了工件的较新版本。已经将大约数十个工件部署到存储库的问题,当然我们只需要最后一个工件。有什么方法可以限制Nexus中已部署快照工件的数量?谢谢迈克尔的帮助 问题答案: 创建计划任务以清除旧快照。 以下链接描述了功能: Nexus预定任务 管理计划的任务-
问题内容: 如何通过UIViewController扩展的任何类以编程方式创建选项卡: 问题答案: 更新SWIFT 5 如何以编程方式创建的一个示例如下所示: 首先,我们创建标签栏界面的每个标签的内容。对于此示例,我们仅创建一个非常简单的示例。 现在,: 我们创建了要显示在标签栏中的的新实例。然后,我们为创建的每个实例创建一个图标,然后创建一个数组,其中包含所有为标签栏界面的每个标签指定内容的数组
问题内容: 有没有一种方法可以在Windows中创建链接? 我发现使用的样本或必须下载的样本。 我需要一个简单的解决方案。那可能吗? 问题答案: 好了,我不得不使用创建快捷方式的方法,但是实际上我需要的是一个文件夹,但是会创建一个。 最终我用来创建。
我是Maven的新手,我的目标是在像(Nexus)这样的存储库中发布一个APK。这个APK是在Jenkins中用Unity3dBuilder插件构建的。我在jenkins的工作是一个Maven2/3项目,因此我需要配置我的pom.xml,以便能够发布我的工件(apk)。 请帮忙!!??