2011-07-06 59 views
0

我正在使用Maven 3.0.3。在打包WAR文件之前,我想運行一個任務來複制特定於環境的屬性。以下是我的任務。我的任務使用什麼階段?

    <plugin> 
          <artifactId>maven-antrun-plugin</artifactId> 
          <executions> 
            <execution> 
              <phase>prepare-package</phase> 
              <goals> 
                <goal>run</goal> 
              </goals> 
              <configuration> 
                <tasks> 
                  <delete file="${project.build.outputDirectory}/environment.properties"/> 
                  <copy file="src/main/resources/${env}_environment.properties" 
                      tofile="${project.build.outputDirectory}/environment.properties" /> 
                  <delete file="${project.build.outputDirectory}/${env}_hibernate.cfg.xml"/> 
                  <copy file="src/main/resources/${env}_hibernate.cfg.xml" 
                      tofile="${project.build.outputDirectory}/hibernate.cfg.xml" /> 
                  <echo message="Copied ${env}_hibernate.cfg.xml properties. " /> 
                </tasks> 
              </configuration> 
            </execution> 
          </executions> 
        </plugin> 

然而,當啓動我的應用程序,從我的Tomcat的配置文件調用的目標,通過運行「MVN -P tomcat的tomcat的:運行」,上面的任務沒有得到運行。任何想法如何我可以糾正這一點?下面是我包含的Tomcat配置文件。 - 戴夫

  <profile> 
        <id>tomcat</id> 
        <activation> 
          <property> 
            <name>env</name> 
            <value>dev</value> 
          </property> 
        </activation> 
        <build> 
          <plugins> 
            <plugin> 
              <groupId>org.codehaus.mojo</groupId> 
              <artifactId>tomcat-maven-plugin</artifactId> 
              <version>1.1</version> 
              <configuration> 
                <charset>UTF-8</charset> 
                <path>/leadsmonitor</path> 
                <server>nnadbmon-tomcat</server> 
                <update>true</update> 
                <url>http://nnadbmon.mydomain.com:8080/manager</url> 
                <warFile>target/leadsmonitor.war</warFile> 
                <systemProperties> 
                  <JAVA_OPTS>-Xms256m -Xmx512m -XX:MaxPermSize=256m -XX:NewRatio=6 -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -verbose:gc"</JAVA_OPTS> 
                </systemProperties> 
              </configuration> 
            </plugin> 
          </plugins> 
        </build> 
      </profile> 

回答

0

您應該將其附加到compile階段。這會在編譯完成後實際執行

+0

附加什麼到編譯階段? – Dave

+0

對不起,我指的是ant-run-plugin。這應該爲你做。 – carlspring

0

的Maven的antrun-插件在準備包運行,因此您可以添加到您的命令:

mvn -P tomcat tomcat:run prepare-package 
+0

在我運行「mvn -P tomcat tomcat:run」時,是否有某種方法可以在我的pom.xml中配置自動執行prepare-package? – Dave

0

tomcat:run文檔,

tomcat:run調用的執行在執行本身之前,生命週期階段編譯

prepare-package階段是後 - 前package

也許你應該嘗試tomcat:run-war

tomcat:run-war在執行自身之前,調用生命週期階段的執行。

相關問題