2013-02-09 35 views
1

我正在使用maven-release-plugin来释放一些工件。在release:perform目标期间,我想运行一个内联的Groovy脚本,它使用我的SCM凭证来执行一些任务。如何将maven命令行参数传递给内联Groovy脚本

这是一个片段我pom.xml

...  
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
    <goals> 
     clean 
     deploy 
     org.codehaus.gmaven:gmaven-plugin:execute 
    </goals> 
    </configuration> 
</plugin> 
<plugin> 
    <groupId>org.codehaus.gmaven</groupId> 
    <artifactId>gmaven-plugin</artifactId> 
    <version>1.3</version> 
    <executions> 
    <execution> 
     <id>default-cli</id> 
     <goals> 
     <goal>execute</goal> 
     </goals> 
     <configuration> 
     <source> 
      log.info "Username: ${project.properties.username} account" 
     </source> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
... 

我调用Maven作为跟随

mvn -B release:prepare release:perform -Dusername=foo -Dpassword=bar 

我GETE以下的输出:

Username: null account 

我想看看在官方GMaven页面,但似乎有一些片段丢失...

有什么想法?


EDIT

我完成通过将凭证在goals

...  
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
    <goals> 
     clean 
     deploy 
     org.codehaus.gmaven:gmaven-plugin:execute -Dusername=${username} -Dpassword=${password} 
    </goals> 
    </configuration> 
</plugin> 
... 

的命令行是直到相同的: mvn -B release:prepare release:perform -Dusername=foo -Dpassword=bar

如所述通过@khmarbaise它看起来像Maven的发布周期rked。我不确定它是否将所有命令行参数传递给了分叉进程。所以这就像我迫使CLI参数的前进一样。

+0

这个必须与你有的其他配置有关,因为当我使用与你所显示的相同的语法时,它适用于我。 – Renato 2013-02-10 15:38:08

回答

2

我建议使用maven-release-plugin的-Darguments=参数,因为在发布周期内maven将被分叉,这似乎是这里的问题。

喜欢上了这个报价

mvn -B release:prepare release:perform -Darguments="-Dusername=foo -Dpassword=bar" 

保重。

相关问题