如何在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所说:遵循标准通常是一个好主意。