首页 > 解决方案 > 如何在 Maven 中排除 src 文件夹下的包?

问题描述

我的项目文件夹的结构是

project_root
| src
    | localstore
    | main

如何排除localstore包形式生成的jar?我使用了这个 pom 文件,无论如何在导出的 jar 文件中有一个 localstore 文件夹。

<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>SomeProjectName</groupId>
    <artifactId>SomeProjectName</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <dependencies> ... </dependencies>

    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <!--this doesn't work-->
                    <excludePackageNames>**/localstore/**</excludePackageNames>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

标签: maven

解决方案


我发现,要排除localstoresrc 文件夹下的整个打包,我们需要在 maven-compiler-plugin 中使用它:

<configuration>
    <excludes>
        <exclude>localstore/*</exclude>
    </excludes>
</configuration>

如果目标只排除 *.java 源,我们应该localstore/*.java在那里使用。


推荐阅读