问题标签 [buildnumber-maven-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
eclipse - Eclipse m2e 从 buildnumber-maven-plugin 覆盖 buildNumber
我正在使用 Eclipse m2e、buildnumber-maven-plugin 和 templating-maven-plugin 创建带有 ${buildNumber} 的过滤 Java 文件。
这是 src/main/java-templates/build.java 文件中的一个示例:
如果我在命令行上运行“mvn generate-sources”,我过滤的 java 文件包含生成的 buildNumber 值。如果我在 Eclipse 中使用 m2e 运行“generate-sources”,过滤后的 java 文件会短暂包含实际的 buildNumber,但很快就会被原始字符串“${buildNumber}”替换
项目的结构是
buildnumber-maven-plugin 在父 pom.xml 中运行,因为我使用 buildNumber<finalName>
为所有子模块设置一个通用值。
我已经尝试过使用和不使用 org.eclipse.m2e 的生命周期映射。我没有注意到任何变化。
出于调试目的,我在两个 pom.xml 文件中都有几个“回声”任务。这些在运行时显示正确/实际的 buildNumber。
这是一个缩写的 CmbProduct/pom.xml:
这是模型/pom.xml:
maven - 我想使用 maven 发布插件使用最新的 svn 修订号自动更新工件版本
我的工件版本如下所示:
1.0.0-快照
我想使用 maven 发布插件将工件部署到发布存储库,使用以下版本:1.0.0.1234,其中 1234 是最新的 svn 修订号。
这可能吗?
我尝试使用 org.codehaus.mojo:buildnumber-maven-plugin 检索 svn 修订号并添加以下部分:
但是当我运行以下命令时:
看起来版本在标签中设置为 1.0.0.${buildNumber} 。
java - 写入清单时,Maven 战争清单条目为空白
我正在尝试将分支和构建信息添加到我的战争清单中,虽然清单上显示了键,但值为空。我从 buildnumber-maven-plugin 中提取的值,当这个插件执行时,日志会显示这些值。我还添加了一个 maven-antrun-plugin 任务来回显我传递给 war 插件的值,它们也会显示在日志中。因此,在写入清单时,我很难找出为什么它们为空。这里有一些例子:
这是我的内部版本号插件:
当这个插件执行时,我在日志中看到..
接下来我刚刚添加了一个 ant 任务来输出这些值。
在我看到的日志中......
最后是战争插件/存档器,这就是问题所在......这是插件......
这是生成的清单,其中分支和 sha 出现空白..
您会看到branch和sha都是空白的,但在上面的日志中,这些值显然是可用的。是否有什么东西会清除这些值,或者是否需要进一步将这些值冒泡到 maven 战争插件中的存档器中?
maven - 为什么 mvn resources:resources 没有获取 buildNumber?
我有一个使用buildnumber-maven-plugin
. 如果我运行,mvn validate
我会看到它正在工作:
但是,如果我运行mvn resources:resources
过滤后的文件并不会拾取它:
有pom.xml
:
version.txt
拥有:
但是在maven运行之后,没有过滤:
内部版本号配置pom.xml
:
我对马文的了解还不够。运行资源“目标”不应该也获得buildNumber
财产吗?
maven - 使用 buildnumber-maven-plugin 检索 svn 上次更改的修订号
我目前正在为我的应用程序开发基于微服务的架构。我有一个 maven 多模块项目,它有很多服务,所以我可以使用 maven deploy 命令和maven docker plugin轻松地将它们部署到 docker hub 。
尽管如此,泊坞窗图像标签仍基于项目版本号,而我希望将它们标记为每个存储库的最后更改的修订号。目前,我正在尝试使用buildnumber-maven-plugin将此字段添加为清单条目:
假设这是我的多模块项目:
module-a 的模型是:
问题是 {buildNumber} 评估为我的工作副本号,它指的是对存储库而不是位置的最后一次提交scm:svn:http://myrepo.com/svn/application/module-a
。为了更好地解释它,当我显示来自 tortoise 的 module-a 的属性时,我得到了这个:
我想要的是检索 3248,它指的是对模块 a 所做的最后一次真正更改,而不是 3257(工作副本),这是我从插件中得到的。这样,docker 插件就会知道它是否是不同的图像标签,并且只有在对 repo 中的模块进行了更改时才推送它。
git - 如何进入清单
使用buildnumber
maven 插件,我想获取存储在我的 jar 清单中的分支。我尝试了两种不同的方法,如下所示。
这是我构建的输出(仅相关部分)
[INFO] --- buildnumber-maven-plugin:1.4:create (default) @ myproject ---
[INFO] ShortRevision tag detected. The value is '7'.
[INFO] Executing: /bin/sh -c cd '/workspace/myproject' && 'git' 'rev-parse' '--verify' '--short=7' 'HEAD'
[INFO] Working directory: /workspace/myproject
[INFO] Storing buildNumber: ed5ea17 at timestamp: 1479511476753
[INFO] Storing buildScmBranch: bug/abuginthesystem
这里是尝试 1 的插件部分(来自插件网站的 SCMBranch 密钥):
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<shortRevisionLength>7</shortRevisionLength>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifestEntries>
<Build-OS>${os.name} ${os.version}</Build-OS>
<Build-Java>Java ${java.version}</Build-Java>
<Build-Number>${buildNumber}</Build-Number>
<Build-Branch>${SCMBranch}</Build-Branch>
</manifestEntries>
</archive>
</configuration>
</plugin>
尝试 2 使用构建:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<shortRevisionLength>7</shortRevisionLength>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifestEntries>
<Build-OS>${os.name} ${os.version}</Build-OS>
<Build-Java>Java ${java.version}</Build-Java>
<Build-Number>${buildNumber}</Build-Number>
<Build-Branch>${buildScmBranch}</Build-Branch>
</manifestEntries>
</archive>
</configuration>
</plugin>
两者的清单输出是:
Manifest-Version: 1.0
Build-Java: Java 1.7.0_79
Build-Number: ed5ea17
Build-OS: Linux 4.4.0-47-generic
Built-By: mondain
Build-Jdk: 1.7.0_79
Build-Branch:
Created-By: Apache Maven 3.3.9
Archiver-Version: Plexus Archiver
maven - 如何使用詹金斯内部版本号生成 Maven 工件
我正在尝试将 Maven 工件名称与内部版本号相关联。例如:sample.1.0.0-snapshot.ear 到 sample.1.0.0-snapshot.buildnumber.ear
我已经尝试过 maven-buildnumber 插件,但仍然没有运气。
谁能帮我做到这一点。
maven - Perforce 和 maven buildnumber 插件
我正在尝试将 buildnumber-maven-plugin (v1.4) 与 Perforce 存储库一起使用。我收到以下记录的消息:
CreateMojo.update() 方法(第 524 行)正在发现正确的修订号(第一个日志消息)。然而,在找到它之后,无条件调用 getRevision()(第 397 行)将其清除,因为它调用了存储库提供程序上的info()方法(perforce 提供程序没有实现该方法,只是返回 null)。我还查看了 GitHub 上的当前源代码(https://github.com/mojohaus/buildnumber-maven-plugin/blob/master/src/main/java/org/codehaus/mojo/build/CreateMojo.java)和看来问题仍然存在。有没有计划解决这个问题?谢谢。
maven - buildnumber-maven-plugin 属性 ${buildNumber} 的可见性
我正在尝试使用buildnumber-maven-plugin
将 SCM 内部版本号附加到 WAR 工件名称,然后用于tomcat7-maven-plugin
部署它,但在不包含内部版本号的上下文路径中。所以我正在制作foo-r1234.war,其中 foo 是我的项目,1234 是 Subversion 中的修订号,但我想将它部署在 Tomcat 上下文foo中。
我得到了战争一代来反映内部版本号,但问题是 Tomcat 插件没有看到内部版本号插件${buildNumber}
分配的属性:
我明白了
[错误] 无法在项目 foo 上执行目标 org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli):找不到战争文件:/my/path/target/foo-r${ buildNumber}.war -> [帮助 1] [错误]
这表明 tomcat 插件没有看到 ${buildNumber}。为了将 foo-r${buildNumber}.war 部署到 Tomcat 中的上下文 foo,如何使其可见?
有关的:
maven - 将自定义字段添加到 buildnumber-maven-plugin 生成的 build.properties
我正在使用buildnumber-maven-plugin
WAR 工件中包含各种版本参数,以便在页面上可见。在我的pom.xml
:
这会产生一个类似于以下内容的 build.properties:
我想svn info
在文件中包含我的更多字段,例如最后一个对分支进行更改的用户等。有没有办法配置它以及如何配置?