Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
如何在Maven中排除src文件夹下的包?_Maven - Fatal编程技术网

如何在Maven中排除src文件夹下的包?

如何在Maven中排除src文件夹下的包?,maven,Maven,我的项目文件夹的结构是 project_root | src | localstore | main 如何排除localstorepackage表单生成的jar? 我使用了这个pom文件,在导出的jar文件中有一个localstore文件夹 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc

我的项目文件夹的结构是

project_root
| src
    | localstore
    | main
如何排除
localstore
package表单生成的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>

4.0.0
SomeProjectName
SomeProjectName
0.0.1-快照
... 
src
maven编译器插件
3.1
1.8
1.8
**/本地存储/**

我发现,要排除src文件夹下的整个
localstore
packade,我们需要在maven编译器插件中使用:

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

本地存储/*

如果我们的目标是只排除*.java源代码,那么我们应该在那里使用
localstore/*.java

为什么有这样的目录?里面装的是什么?为什么它是项目的一部分?除此之外,默认情况下,该目录永远不会成为结果jar文件的一部分,除非您配置了不同的东西。。。请显示完整的pom文件。@khmarbaise用于测试目的的文件夹(实际上是一个包)以及该包中的任何类在生产中都没有使用(也不应该使用)。这就是我想排除它的原因。现在它就在eclipse结构中的
src
下面。我在主题pom文件中添加了它,如果它在某种程度上有帮助的话。通常,您的源代码在
src/main/java
中,测试在
src/test/java
中。正如@JFabianMeier已经声明的那样,测试/测试类应该位于
src/test/java
中,或者测试资源应该位于
src/test/resources中,这将使生活变得更轻松。约定优先于配置……我仍然不明白为什么您希望使用这种特殊结构而不是标准结构。@JFabianMeier也许这是一种选择(我已经尝试过了,而且效果很好),但在我的问题中并不完全如此。正如khmarbaise所说:遵循标准通常是一个好主意。