我首先使用CXF 教程关注this 合同,当生成的pom.xml
生成源代码,甚至成功完成构建时,它无法创建一个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
中的元素不同),但我也明白,使用此插件时,这甚至可以隐含{{{ 3}}演示:
<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?
答案 0 :(得分:13)
包装应如下所示。
<packaging>war</packaging>
如果无效,请尝试将插件配置与生命周期阶段绑定。
答案 1 :(得分:6)
在您的项目定义中,请检查包装是否缺失,应该是这样的。
<groupId>some.groupid</groupId>
<artifactId>My Web Application</artifactId>
<version>0.0.1</version>
<packaging>war</packaging>
<description>My First Web Application</description>
默认情况下,maven war插件绑定到package phase of the lifecycle
,因此重要的是我们应该在构建完成后提及我们想要的打包类型。
我建议您查看Maven specs for war plugin。