使用scm-maven-plugin时如何在pom中指定提交消息?

时间:2013-01-18 14:55:44

标签: git maven-3 commit system-properties maven-scm

我正在尝试使用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]

关于我做错的任何想法?

干杯 罗布

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