Java 生成WAR包时出现Maven错误(web.xml丢失..?)

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

在执行mvn安装时,我遇到以下错误:

组装WAR:webxml属性时出错 是必需的(或预先存在的) 如果在更新中执行,则为WEB-INF/WEB.xml 模式)

我的web应用程序结构树如下所示:

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