2011-04-13 67 views
3

我正在使用Maven 3.0.3。我想編寫一個簡單的任務,將戰爭文件從我的目標目錄複製到Tomcat部署目錄。我在哪裏放置我的目標?我想...maven目標去哪裏?

<?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>socialmediaproxy</groupId> 
    <artifactId>socialmediaproxy</artifactId> 
    <packaging>war</packaging> 
    <version>0.1</version> 

    <goal name="copy-war" description="Copies the war file to the webapps directory"> 
    <!-- This is Ant stuff --> 
    <copy file="${basedir}/target/${artifactId}-${version}.war" tofile="${warDestinationDir}"/> 
    </goal> 

但是當我運行

mvn copy-war -P dev 

我得到這個錯誤...

[錯誤]構建無法讀取1個項目 - > [求助1] [錯誤]
[錯誤]項目socialmediaproxy:socialmediaproxy:0.1(/Users/davea/Documents/workspace-sts-2.6.0.SR1/socialmediaproxy/pom.xml)有1個錯誤 [錯誤]格式錯誤的POM /用戶/ davea /文檔/工作空間STS-2.6.0.SR1/socialmediaproxy/pom.xml:無法識別的標籤:'goal'(position:START_TAG seen ... y-war「description =」將war文件複製到webapps目錄「> ... @ 9:84)@/Users/davea /Documents/workspace-sts-2.6.0.SR1/socialmediaproxy/pom.xml,第9行,第84列 - > [Help 2]

任何想法? - 戴夫

回答

0

您可以使用ANT本身的東西從你的目標目錄複製到Tomcat迪爾

  • 既然你想將文件從目標目錄移動,在封裝階段運行ANTRUN插件。

    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.6</version> 
    <phase>package</phase> 
    <configuration> 
        <target> 
         <copy file="${basedir}/target/${artifactId}-${version}.war" tofile="${warDestinationDir}"/> 
        </target> 
    </configuration> 
    <goals> 
    <goal>run</goal> 
    

這將運行在執行plase進球后在<target>提到的ANT任務。

+1

Maven中的Ant應該是最後的手段,特別是對於像副本那樣微不足道的東西。尋找現有的插件來完成你需要的功能,如果沒有,請使用antrun插件。 – 2011-06-10 20:33:01

+0

是的,maven內部的螞蟻的使用沒有被優先考慮。請看看maven-resource-plugin或tomcat-maven-plugin。 所有插件都可以通過pom的構建部分中的插件的執行和配置部分綁定到pom中的生命週期階段。因此,您可以在安裝階段綁定資源插件以執行目標copy-resources:http://maven.apache.org/plugins/maven-resources-plugin/examples/copy-resources.html – FunThomas424242 2012-01-25 23:57:57

3

pom中的目標部分不再存在,因爲它來自Maven 1 ...但是您定義了一個用於Maven 3的pom(模型版本4.0.0)。查看當前的reference for the pom