Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven正在使用错误的类目录创建一个war,或者将编译的类放在错误的位置_Java_Maven_War - Fatal编程技术网

Java Maven正在使用错误的类目录创建一个war,或者将编译的类放在错误的位置

Java Maven正在使用错误的类目录创建一个war,或者将编译的类放在错误的位置,java,maven,war,Java,Maven,War,实际的新编译代码被放入2,但是war文件是使用1创建的。因此,我的war文件根本不是最新的 我该怎么办?下面显示了我的pom的片段…: MyProject > src > target > MyProject > classes (1) > classes (2) 我的项目 org.apache.maven.plugins maven编译器插件 2.3.2 1.6

实际的新编译代码被放入2,但是war文件是使用1创建的。因此,我的war文件根本不是最新的

我该怎么办?下面显示了我的pom的片段…:

MyProject > src
          > target
                   > MyProject   > classes (1)
                   > classes (2)

我的项目
org.apache.maven.plugins
maven编译器插件
2.3.2
1.6
1.6
org.apache.maven.plugins
maven战争插件
src\main\webapp\WEB-INF\WEB.xml
我的项目
2.1.1

我对你所展示的东西有点怀疑

通常在战争项目中,目标应该是

<build>
        <finalName>MyProject</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <webXml>src\main\webapp\WEB-INF\web.xml</webXml>
                    <warName>MyProject</warName>

                </configuration>
                <version>2.1.1</version>
            </plugin>
        </plugins>
    </build>
我从未在Maven WAR项目中看到过
target/PROJ

如果我展示的是你所看到的,那就是Maven一直在做的事情

源代码被编译并放入类中

在创建WAR期间,不同的文件,包括项目的
目标/类
,将被复制到构成WAR结构的
项目版本
目录中,并将用于创建WAR文件

因此,Maven在创建WAR时使用
target/PROJ version/WEB-INF/classes
应该没有问题,因为它是在构建时从
target/classes
复制的


如果不是你的情况,我可能会建议你分享你的POM。您提到的目录对于战争项目来说似乎不合理。

target/PROJ只不过是爆炸战争


尝试删除目标目录。从命令行执行maven构建。并检查是否所有的东西都是在这一点上创建的。如果是这样,那么maven的行为是正确的,因为这两个位置都包含更新的类文件,并且target/PROJ目录是war目录。您可以使用该目录的路径在tomcat/web容器中设置上下文。

您可以附加一些示例pom.xml来向我们展示错误的行为吗?@nightseare您希望看到其中的哪一位?
PROJ
  + target
    + classes
    + PROJ-version
      + WEB-INF
        + classes