我希望将以下内容转换为Jenkins兼容插件,该插件不依赖于对可执行文件执行外部调用。
是否有可用于获取此信息以进入META-INF文件夹的替代插件?
注意:SVN不在Jenkins环境中的路径上。
Maven 3.5.3
Java 1.8
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>${maven-antrun-plugin.ver}</version>
<executions>
<execution>
<id>get-scm-info</id>
<goals>
<goal>run</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<tasks>
<mkdir dir="target/buildinfo" />
<exec executable="svn" output="target/buildinfo/scm.properties">
<arg value="info" />
<arg value="${basedir}" />
<arg value="--non-interactive" />
</exec>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
答案 0 :(得分:1)
build number plugin的目标DevTools
将创建包含scm版本信息的必需文件。以下配置将在文件夹create-metadata
中创建名为scm.properties
的文件。
由于构建计算机上没有可用的svn安装,您可以使用svnkit而不是正常的svn安装。要使用target/buildinfo
,还需要两个额外的配置:
svnkit
<providerImplementations><svn>javasvn</svn></providerImplementations>
和maven-scm-provider-svnjava
)。svnkit
为了让一切正常,pom必须包含一个带有正确svn url的scm部分:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>create-metadata</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>true</doCheck>
<doUpdate>true</doUpdate>
<outputDirectory>target/buildinfo</outputDirectory>
<outputName>scm.properties</outputName>
<providerImplementations>
<svn>javasvn</svn>
</providerImplementations>
</configuration>
<dependencies>
<dependency>
<groupId>com.google.code.maven-scm-provider-svnjava</groupId>
<artifactId>maven-scm-provider-svnjava</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>org.tmatesoft.svnkit</groupId>
<artifactId>svnkit</artifactId>
<version>1.9.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>