2013-08-01 88 views
5

this合同首先使用CXF教程,并同时产生pom.xml产生来源,甚至完成建造成功,它无法创建一个WAR文件下面。为什么maven-war-plugin会生成一个JAR而不是WAR?

相反,它创建一个JAR文件。

我的理解是,在pom.xml这是负责创建WAR的部分是:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.1.1</version> 
    <configuration> 
    <outputDirectory>D:/path/to/profile/autodeploy</outputDirectory> 
    </configuration> 
</plugin> 

我看不出有任何<goal><execution>元素存在(不像build-helper-maven-plugin一个),但我也明白,有了这个插件,这是因为隐含甚至official usage page表明:

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
      <webappDirectory>/sample/servlet/container/deploy/directory</webappDirectory> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    ... 
</project> 

所以......我缺少什么?

什么可能解释一个maven-war-plugin像这样以意想不到的方式运行,并默认生成JAR而不是WAR?

有没有办法强制它产生一个WAR?

+5

在POM的某处应该有一个'战争'吗? – Thilo

回答

13

包装应如下所示。

<packaging>war</packaging> 

如果它不会帮助,然后尝试绑定您的插件配置与生命周期阶段。

4

在您的项目定义中,请检查包装是否丢失或没有,应该是这样的。

<groupId>some.groupid</groupId> 
    <artifactId>My Web Application</artifactId> 
    <version>0.0.1</version> 
    <packaging>war</packaging> 
    <description>My First Web Application</description> 

通过默认的Maven插件战争结合package phase of the lifecycle,所以它的重要的是,我们应该提到我们希望一旦构建完成包装的类型。我想建议看一下Maven specs for war plugin

相关问题