I'm trying to use the maven SCM plugin to commit some files to a git repo during an automated build, the plugin requires a commit message to be set as a system property, I don't want to have to pass this on the command line (I'm also using the release plugin and this causes issues).
I've tried everything I think of to add the message system property via the pom but no luck, here's a stripped down version of my 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>
Adding message via the profile properties seems to work, the files are commited to get and the message appear in the repo but the build fails with this error:
[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]
Any ideas on what I'm doing wrong?
Cheers Rob
Try changing the pom.xml
to look like this:
...
<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>
...
Try using message
property instead of systemProperties
.
Or you could always do this in command line like:
mvn -Dmessage="<commit_log_here>" scm:checkin
as stated here