Maven 马文的进球去了哪里?

Maven 马文的进球去了哪里?,maven,maven-3,Maven,Maven 3,我使用的是Maven 3.0.3。我想编写一个简单的任务,将war文件从目标目录复制到Tomcat部署目录。我把目标放在哪里?我试过 <?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://mave

我使用的是Maven 3.0.3。我想编写一个简单的任务,将war文件从目标目录复制到Tomcat部署目录。我把目标放在哪里?我试过

<?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>
我得到这个错误

[错误]生成无法读取1个项目->[帮助1] [错误]
[错误]项目socialmediaproxy:socialmediaproxy:0.1(/Users/davea/Documents/workspace-sts-2.6.0.SR1/socialmediaproxy/pom.xml)有1个错误 [错误]格式错误的POM/Users/davea/Documents/workspace-sts-2.6.0.SR1/socialmediaproxy/POM.xml:无法识别的标记:“目标”(位置:START_tag seen…y-war“description=”将war文件复制到webapps目录“>…@9:84)@/Users/davea/Documents/workspace-sts-2.6.0.SR1/socialmediaproxy/POM.xml,第9行,第84列->[帮助2]


有什么想法吗?-Dave

您可以使用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>
    
    maven-antrun插件
    1.6
    包裹
    跑
    
这将在执行plase目标后运行
中提到的ANT任务。
pom中的目标部分不再存在,因为它来自Maven 1…但是您定义了pom(型号版本4.0.0)这是为Maven 3设计的。看看当前的情况。

Maven内部的Ant应该是最后的手段,尤其是对于像副本这样的琐碎的东西。寻找现有的插件,它们可以实现您需要的功能,如果没有,就求助于antrun插件。是的,Maven内部的Ant没有优先使用。请查看Maven资源插件或tomcat maven插件。所有插件都可以通过pom构建部分插件的执行和配置部分绑定到pom中的生命周期阶段。因此,您可以在安装阶段绑定资源插件以执行目标复制资源:
<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>