Java 从POM中的生成路径中排除包

Java 从POM中的生成路径中排除包,java,maven,buildpath,Java,Maven,Buildpath,我在一个项目中有一个包de.ht.ak.praktikum.hook,它位于源文件夹src中,但应该从构建路径中排除它。我过去常常右键单击它,然后选择BuildPath->Exclude。由于我每次更新项目时都将maven添加到项目中,因此排除的文件夹会再次变成包,即排除被删除。我试着用这种方式解决它: 。。。 src src de/ht/ak/praktikum/hook ... ... 我也试着按照描述做: 。。。 org.apache.maven.plugins maven eclips

我在一个项目中有一个包
de.ht.ak.praktikum.hook
,它位于源文件夹
src
中,但应该从构建路径中排除它。我过去常常右键单击它,然后选择BuildPath->Exclude。由于我每次更新项目时都将maven添加到项目中,因此排除的文件夹会再次变成包,即排除被删除。我试着用这种方式解决它:

。。。
src
src
de/ht/ak/praktikum/hook
...
...
我也试着按照描述做:

。。。
org.apache.maven.plugins
maven eclipse插件
3.1
de/ht/ak/praktikum/hook/
**/*.爪哇
...

然而,这两种方法都不管用。有什么想法吗?

您的第一次尝试将不起作用,因为您指定将其作为资源排除(即,那些打包到结果JAR文件中的文件-您通常不希望源文件在其中)

第二次尝试更加正确。但是,您希望从编译中排除它们,因此需要设置。也就是说,像这样:

<build>
  ..
  <plugins>
    ..
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.2</version>
      <configuration>
        <excludes>
          <exclude>de/ht/ak/praktikum/hook/*.java</exclude>
        </excludes>
      </configuration>
    </plugin>
    ..
  </plugins>
</build>

..
..
org.apache.maven.plugins
maven编译器插件
3.2
de/ht/ak/praktikum/hook/*.java
..

在Eclipse中更新项目时(Maven->Update project),Eclipse应遵守此配置,并将其从Eclipse内部构建路径中排除。

如果不想在jar中导出包,则只需在包中添加内部名称,例如:de.ht.ak.praktikum.internal.hookI不使用maven构建项目,而只是管理依赖项。排除提到的文件夹将有助于隐藏项目错误。我的POM看起来像现在,但没有帮助-文件夹仍然包含在生成路径中。为什么省略
*.java
通配符模式说明符?另外,有些人报告源文件夹在排除模式前面成功,有些人报告没有。为了安全起见,请尝试将
***/
放在模式的开头(即,
**/de/ht/ak/praktikum/hook/*.java
。我想排除整个文件夹。不过这并不重要。如果我使用通配符模式说明符与否。结果是一样的。我最终找到了问题所在。如果我想排除文件,我必须使用
de/ht/ak/praktikum/hook/**.java
,因为没有e在
hook
中还有几个包。但是我的目标是排除整个文件夹,我可以通过
de/ht/ak/praktikum/hook/*
实现这一点。