Java 生成WAR包时出现Maven错误(web.xml丢失..?)
在执行mvn安装时,我遇到以下错误: 组装WAR:webxml属性时出错 是必需的(或预先存在的) 如果在更新中执行,则为WEB-INF/WEB.xml 模式) 我的web应用程序结构树如下所示:Java 生成WAR包时出现Maven错误(web.xml丢失..?),java,maven-2,Java,Maven 2,在执行mvn安装时,我遇到以下错误: 组装WAR:webxml属性时出错 是必需的(或预先存在的) 如果在更新中执行,则为WEB-INF/WEB.xml 模式) 我的web应用程序结构树如下所示: my-app |-- pom.xml |-- src |-- ... |-- WebContent |-- ... |-- META-INF |-- WEB-INF |-- classes
my-app
|-- pom.xml
|-- src
|-- ...
|-- WebContent
|-- ...
|-- META-INF
|-- WEB-INF
|-- classes
|-- ...
|-- lib
|-- **web.xml**
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>masters.traffic</groupId>
<artifactId>traffic_web</artifactId>
<packaging>war</packaging>
<name>traffic_web</name>
<version>0.1.0</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
我的POM文件如下所示:
my-app
|-- pom.xml
|-- src
|-- ...
|-- WebContent
|-- ...
|-- META-INF
|-- WEB-INF
|-- classes
|-- ...
|-- lib
|-- **web.xml**
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>masters.traffic</groupId>
<artifactId>traffic_web</artifactId>
<packaging>war</packaging>
<name>traffic_web</name>
<version>0.1.0</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
4.0.0
交通硕士
交通网络
战争
交通网络
0.1.0
src
org.apache.maven.plugins
maven编译器插件
1.6
1.6
...
如何正确解决这个问题
关于请看下面的评论:
我相信Maven需要一个名为“webapp”而不是“WebContent”的文件夹。我猜
Maven war plugin
正在查找src/main/webapp/WEB-INF/WEB.xml
,但找不到它,希望您明确指定(非Maven标准)位置。如果无法将WebContent
重命名为webapp
,并将其移动到src/main/
(推荐)下,则可以尝试将类似内容添加到
org.apache.maven.plugins
maven战争插件
${basedir}/src/WebContent/WEB-INF/WEB.xml
${basedir}/src/WebContent
I强烈建议使用:
- 将Java源代码放入
(并删除src/main/Java
元素)sourceDirectory
- 将Web应用程序源放入
src/main/webapp
- 删除
WEB-INF下的
和classes
目录lib
当然,你可以自定义布局,但这是更多的麻烦和无用的努力比好处。遵循约定。我最近遇到了这个问题,问题是我的资源类没有在类的顶部指定初始路径。每个方法都指定了一个路径,但没有指定初始路径 例如:
@Path("/")
public class MyResource {
@GET
@Produces("text/html")
public String foo() {
return "foo";
}
@GET
@Path("pt")
@Produces("text/html")
public String bar() {
return "bar";
}
会很好用的。但是,
public class MyResource {
@GET
@Produces("text/html")
public String foo() {
return "foo";
}
@GET
@Path("pt")
@Produces("text/html")
public String bar() {
return "bar";
}
不会如果您使用的是eclispe,请确保右键单击该项目并创建一个Maven“项目”。您可以使用mvn generate:archetype-B-cpu从命令行以批处理方式编译,并进行更新,但您可能需要手动构造一些内容。这样,它将作为web应用程序或客户端应用程序运行。将此代码添加到pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
org.apache.maven.plugins
maven战争插件
2.6
假的
谢谢!我花了很多时间弄清楚为什么JSF没有呈现,我把WEB-INF放在另一个目录中,然后摆弄IDEA.iml文件,我通过为WEB.xml添加一个部署描述符使它工作,奇怪的是,它随后停止了工作。。我想现在它会好起来的;)如果我的web应用程序中没有web.xml怎么办?@Vivek add false to configuration