java - 使用 Eclipse Kepler 的包目标使用 Maven 构建创建的重复 WEB-INF 文件夹

标签 java eclipse maven web-applications

我使用 JSF、Spring 和 JSF 方面创建了一个 Maven 应用程序。目标清理(删除目标目录)和编译工作正常。但是当我使用 package 选项运行 Maven 时,我看到在生成的 xxx-SNAPSHOT.war 文件中,webapp 和 WEB-INF 目录被递归复制。

Maven版本是3.1.0。

请参阅下面的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.organization.elr</groupId>
    <artifactId>employeerepository</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>Employee Location Repository</name>
    <properties>
        <version.spring>3.1.2.RELEASE</version.spring>
        <version.aopalliance>1.0</version.aopalliance>
        <version.standard.taglibs>1.1.2</version.standard.taglibs>
        <version.commons.logging>1.1.1</version.commons.logging>
    </properties>
    <build>
        <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
        <outputDirectory>${basedir}/src/main/WEB-INF/classes</outputDirectory>
        <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
        <testOutputDirectory>${basedir}/src/main/WEB-INF/classes/test</testOutputDirectory>
        <resources>
            <resource>
                <directory>${basedir}/src/main/resources</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <webappDirectory>${basedir}/src/main/webapp</webappDirectory>
                    <failOnMissingWebXml>true</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

有什么办法可以避免这种情况吗?

提前致谢, 穆利。

最佳答案

这没有任何意义

    <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
    <outputDirectory>${basedir}/src/main/WEB-INF/classes</outputDirectory>
    <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
    <testOutputDirectory>${basedir}/src/main/WEB-INF/classes/test</testOutputDirectory>

删除这些行。您正在将应用程序构建到源目录。

这也没有意义

    <resources>
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
    </resources>

为什么资源中有 .java 文件?

关于java - 使用 Eclipse Kepler 的包目标使用 Maven 构建创建的重复 WEB-INF 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20606582/

相关文章:

java - 反转 Queue<Integer> 并将其转换为 int 数组

java - 面对事务时使用 "last modified"时间戳同步 Oracle 数据库

android - 是否可以在 Activity 环境之外使用加速度计?

java - Eclipse J2EE 预览服务器无法找到已部署的页面

src/main/resources 中文件的 Java 路径

java - 没有 Struts 和 Maven 的 JSP Tiles

java - 在java中计算指标的程序

java - 日志记录不适用于 Spring boot 2.1.1 和 JDK 11 升级

eclipse - 从 UI 线程调用 PlatformUI.getWorkbench().getDisplay().syncExec

maven - 重命名所有项目依赖项,而不重命名主 Artifact