2013-01-18 3 views
2

자동화 된 빌드 중에 maven SCM plugin을 사용하여 일부 파일을 git repo에 커밋하려고 시도했지만 플러그인에서 커밋 메시지를 시스템 속성으로 설정해야합니다.이 파일을 시스템에 전달하지 않아도됩니다. 명령 줄 (나는 또한 릴리스 플러그인을 사용하고 있는데 이로 인해 문제가 발생 함). 프로필 속성을 통해 메시지를 추가scm-maven-plugin을 사용할 때 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] 

어떤 아이디어? 다음과 같이 할 수 pom.xml을 변경

건배 롭

답변

5

봅니다 :

... 
    <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> 
... 

systemProperties 대신 message 속성을 사용하십시오. 같은

또는 당신은 항상 명령 줄에서이 작업을 수행 할 수 있습니다 : 언급 here

+0

감사로

mvn -Dmessage="<commit_log_here>" scm:checkin 

내가 최고 제안을 사용, 우리의 CI 서버를 실행하는 사람들은 MVN 명령을 엉망 경향이 우리 내가 커맨드 라인에 그것을 추가하고 싶지 않도록 설정 –