2013-08-30 47 views
2

我正在使用maven3作爲構建工具並擁有一些插件。這是我的maven設置:如何使用maven tomcat插件將war與自動buildnumber一起部署到tomcat中

<build> 
     <finalName>${project.artifactId}-${project.version}-${buildNumber}</finalName> 
     <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-war-plugin</artifactId> 
        <version>2.4</version> 
        <configuration> 
         <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes> 
         <archive> 
         <manifest> 
          <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
         </manifest> 
         <manifestEntries> 
          <Implementation-Build>${buildNumber}</Implementation-Build> 
         </manifestEntries> 
         </archive> 
        </configuration> 
       </plugin> 

       <!-- Build number auto increment --> 
       <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>buildnumber-maven-plugin</artifactId> 
        <version>1.2</version> 
        <executions> 
         <execution> 
         <id>buildnumber</id> 
         <phase>validate</phase> 
         <goals> 
          <goal>create</goal> 
         </goals> 
         </execution> 
        </executions> 
        <configuration> 
         <format>{0,number}</format> 
         <items> 
          <item>buildNumber</item> 
         </items>  
         <doCheck>false</doCheck> 
         <doUpdate>false</doUpdate> 
        </configuration> 
       </plugin> 

       <!-- Ignore/Execute plugin execution --> 
       <!-- copy-dependency plugin --> 
       <plugin> 
        <groupId>org.eclipse.m2e</groupId> 
        <artifactId>lifecycle-mapping</artifactId> 
        <version>1.0.0</version> 
        <configuration> 
         <lifecycleMappingMetadata> 
          <pluginExecutions> 
           <pluginExecution> 
            <pluginExecutionFilter> 
             <groupId>org.apache.maven.plugins</groupId> 
             <artifactId>maven-dependency-plugin</artifactId> 
             <versionRange>[1.0.0,)</versionRange> 
             <goals> 
              <goal>copy-dependencies</goal> 
             </goals> 
             <!-- 
             <configuration> 
              <outputDirectory>${catalina.home}/common/lib</outputDirectory> 
             </configuration> 
             --> 
            </pluginExecutionFilter> 
            <action> 
             <ignore/> 
            </action> 
           </pluginExecution> 
          </pluginExecutions> 
         </lifecycleMappingMetadata> 
        </configuration> 
       </plugin> 

       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <configuration> 
         <source>1.6</source> 
         <target>1.6</target> 
        </configuration> 
       </plugin> 
       <!-- webtools plugin to run the project in Tomcat. It also has republish functionality. --> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-eclipse-plugin</artifactId> 
        <version>2.9</version> 
       </plugin> 

       <!-- Codehaus mojo plugin to deploy, run the project in Tomcat --> 
       <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>tomcat-maven-plugin</artifactId> 
        <configuration> 
         <url>http://127.0.0.1:8080/manager</url> 
         <server>TomcatServer</server> 
        </configuration> 
       </plugin> 
</plugin> 

我在構建和部署到Tomcat時使用下面的命令。

mvn clean tomcat:redeploy 

但是Tomcat插件找不到war文件,因爲buildernumber插件使用增量buildnumber設置war文件名。我想用buildnumber插件繼續部署war文件。我該如何解決這個問題? 您的回答,將不勝感激。

相關:Visibility of buildnumber-maven-plugin property ${buildNumber}

回答

0

使用Tomcat 7,用 '##' tomcat7可以使用aritfactId作爲背景和版本版本在Tomcat中。

<plugin> 
<groupId>org.apache.tomcat.maven</groupId> 
<artifactId>tomcat7-maven-plugin</artifactId> 
<version>2.2</version> 
<configuration> 
    <url>http://localhost:8080/manager/text</url> 
    <server>tomcatserver</server> 
    <path>/${project.artifactId}##${project.version}</path> 
</configuration> 
</plugin> 

零件在你的POM中,你更是一個POM使用諸如「Maven的編譯器插件」放在父POM,並在您所有的項目勁歌。