2014-07-26 55 views
1

我正在用Jenkins和maven構建戰爭文件,我需要將它同時部署到2個運行的tomcats中。我在的pom.xml寫(每個Tomcat)的兩個配置文件,但是當我運行Jenkins + maven Cargo + 2 tomcats

cargo:deploy -Pprofile1,profile2 

其只PROFILE2部署。所以我需要運行命令2次:

cargo:deploy -Pprofile1 
cargo:deploy -Pprofile2 

這就是我的pom.xml的樣子:

 <plugin> 
      <groupId>org.codehaus.cargo</groupId> 
      <artifactId>cargo-maven2-plugin</artifactId> 
      <version>1.4.8</version> 
      <configuration> 
       <container> 
        <containerId>tomcat7x</containerId> 
        <type>remote</type> 
       </container> 
       <configuration> 
        <type>runtime</type> 
        <properties> 
         <cargo.remote.uri>${cargo.manager.url}</cargo.remote.uri> 
         <cargo.remote.username>${cargo.username}</cargo.remote.username> 
         <cargo.remote.password>${cargo.password}</cargo.remote.password> 
        </properties> 
       </configuration> 
       <deployables> 
        <deployable> 
         <groupId>com.softserveinc</groupId> 
         <artifactId>oms</artifactId> 
         <!-- <version>1.0.0-BUILD-SNAPSHOT</version> --> 
         <type>war</type> 
        </deployable> 
       </deployables> 
      </configuration> 
     </plugin>  
    </plugins> 
</build> 
<profiles> 
    <profile> 
     <id>profile1</id> 
      <properties> 
      <cargo.manager.url>http://<here shuold be ip addres>/manager/text</cargo.manager.url> 
      <cargo.username>admin</cargo.username> 
      <cargo.password>admin</cargo.password> 
     </properties> 
    </profile> 
    <profile> 
     <id>profile2</id> 
     <properties> 
      <cargo.manager.url>http://<here shuold be ip addres>/manager/text</cargo.manager.url> 
      <cargo.username>admin</cargo.username> 
      <cargo.password>admin</cargo.password> 
     </properties> 
    </profile> 
</profiles> 

,但我需要1個命令做2個雄貓?有人知道該怎麼做?

回答

1

寫了調用Cargo deploy命令的腳本。

這裏是神社的模板,從ansible清單文件動態創建:

#!/bin/sh 
function deploy 
{ 
echo "Changing working directory to om" 
cd /home/install/some 

{% for host in groups['app'] %} 
echo "Deploying application to {{host}} server" 
{{installation_folder}}/maven/bin/mvn cargo:redeploy -P{{host}} 
{% endfor %} 
} 

echo "Downloading the latest version of oms.war" 
wget "http://{{groups['CS'][0]}}:8081/nexus/service/local/artifact/maven/redirect?r=snapshots&g=com.softserveinc&a=oms&v=1.0.0-BUILD-SNAPSHOT&p=war" -O /tmp/some.war 

deploy 

echo "Removing some.war" 
rm -rf /tmp/oms.war