我正在尝试使用maven SCM plugin在自动构建期间将一些文件提交到git repo,该插件需要将提交消息设置为系统属性,我不希望在命令行上传递它(我也使用发布插件,这会导致问题)。
我已经尝试了所有我想通过pom添加消息系统属性但没有运气,这是我的pom的精简版本:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.monkeys.coding</groupId>
<artifactId>project</artifactId>
<packaging>js</packaging>
<version>1.0.4-SNAPSHOT</version>
<name>Some Project</name>
<description>Some Project where I want to add files to git during build</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<projectVersion>${project.version}</projectVersion>
</properties>
<scm>
<connection>scm:git:http://some.git.repo:9080/git/module.git</connection>
<developerConnection>scm:git:http://some.git.repo:9080/git/module.git</developerConnection>
<url>http://some.git.repo:9080/git/module.git</url>
</scm>
<build>
<finalName>${project.artifactId}</finalName>
<!-- Package as js -->
<extensions>
<extension>
<groupId>org.codehaus.mojo</groupId>
<artifactId>javascript-maven-plugin</artifactId>
<version>2.0.0-alpha-1</version>
</extension>
</extensions>
...
</build>
<profiles>
<!-- run this profile when releasing the library -->
<profile>
<id>release</id>
<properties>
<message>Add version files to git</message>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.8.1</version>
<configuration>
<message>Add version files to git</message>
<systemProperties>
<systemProperty>
<name>message</name>
<value>[Add Version to git]</value>
</systemProperty>
</systemProperties>
</configuration>
<executions>
<execution>
<id>add-version-to-git</id>
<phase>package</phase>
<goals>
<goal>add</goal>
<goal>checkin</goal>
</goals>
<configuration>
<basedir>./</basedir>
<includes>versions/*</includes>
<systemProperties>
<systemProperty>
<name>message</name>
<value>[Add Version to git]</value>
</systemProperty>
</systemProperties>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
通过配置文件属性添加消息似乎工作,文件被提交获取并且消息显示在repo中但是构建失败并显示以下错误:
[ERROR] Provider message:
[ERROR] The git-commit command failed.
[ERROR] Command output:
[ERROR]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 28.637s
[INFO] Finished at: Fri Jan 18 12:59:40 GMT 2013
[INFO] Final Memory: 19M/81M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-scm-plugin:1.8.1:checkin (add-version-to-git) on project: Command failed.The git-commit command failed. -> [Help 1]
关于我做错的任何想法?
干杯 罗布
答案 0 :(得分:5)
尝试将pom.xml
更改为如下所示:
...
<executions>
<execution>
<id>add-version-to-git</id>
<phase>package</phase>
<goals>
<goal>add</goal>
<goal>checkin</goal>
</goals>
<configuration>
<basedir>./</basedir>
<includes>versions/*</includes>
<message>[Add Version to git]</message>
</configuration>
</execution>
</executions>
...
尝试使用message
属性而不是systemProperties
。
或者你总是可以在命令行中执行此操作,如:
mvn -Dmessage="<commit_log_here>" scm:checkin
如所述here