从WAR包中排除*.java源文件

从WAR包中排除*.java源文件,java,maven,war,Java,Maven,War,我在从生成的WAR包中筛选*.java文件时遇到问题。 我使用的是maven 3.0.3。我的pom.xml如下所示: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac

我在从生成的WAR包中筛选*.java文件时遇到问题。 我使用的是maven 3.0.3。我的pom.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">

<parent>
    <groupId>com.my</groupId>
    <artifactId>app</artifactId>
    <version>1.00</version>
</parent>

<modelVersion>4.0.0</modelVersion>
<groupId>com.my.app</groupId>
<artifactId>app</artifactId>
<packaging>war</packaging>
<name>My Webapp</name>

<build>
    <finalName>My</finalName>

    <resources>
        <resource>
            <directory>src/main/java</directory>
            <filtering>true</filtering>
            <excludes>
                <exclude>*.java</exclude>
            </excludes>
        </resource>

        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>
....

通过
mvn war:war
但没有成功。

在@khmarbaise的帮助下,我找到了问题的原因。在我的例子中,我刚刚删除了“src/main/java”文件夹的“”部分。

不要使用
,尝试如下操作

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<packagingExcludes>
    WEB-INF/**/*.java
</packagingExcludes>
</configuration>
</plugin>

org.apache.maven.plugins
maven战争插件
3.2.0
WEB-INF/***.java

为什么要过滤src/main/java,为什么要将其定义为资源?嗯:)关于从WAR中排除文件的第一个结果是关于使用指令。我(也是在我之前几年写过这个配置的人)想,为什么我们不能用它来过滤战争中的*.java文件呢?也许以前是这样的。但是现在,看起来这是个坏主意:)嗯……你没有真正回答我的问题:为什么要对Java文件使用过滤?通常您不需要过滤java源文件,因为它们是经过编译的,仅此而已。因此,没有必要这样做,也就没有必要将他们排除在战争之外如果我回答得不够清楚,我很抱歉。编写这个配置的人认为过滤可以防止*.java文件被复制到WAR,我遵循了这个假设。我的意思是,我们完全误解了这个选项的含义。但事实上,现在,当我删除了整个部分时,我的WAR中没有*.java文件。这就是问题所在:)这就是解决方案。非常感谢。我可以回答你有关战争的问题,但是我周末要逃走了。。现在!
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<packagingExcludes>
    WEB-INF/**/*.java
</packagingExcludes>
</configuration>
</plugin>