1

我正在尝试为我的代码设置我的第一个 maven 项目,可以在这里找到: https ://github.com/jkinable/jorlib

我有 3 个 pom 文件:

  1. https://github.com/jkinable/jorlib/blob/master/pom.xml
  2. https://github.com/jkinable/jorlib/blob/master/jorlib-core/pom.xml
  3. https://github.com/jkinable/jorlib/blob/master/jorlib-demo/pom.xml

我想从编译和测试中排除以下目录中的所有文件:

jorlib-core/src/test/java/org/jorlib/frameworks/columnGeneration/tsp

注意“测试”部分。根据这个网站,我可以将 maven-compiler-plugin 与 excludes 和 testExcludes 一起使用。所以我添加了插件:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
    <source>1.8</source>
    <target>1.8</target>
    <excludes>
      <exclude>**/org/jorlib/frameworks/columnGeneration/tsp/**</exclude>
      <exclude>**/org/jorlib/frameworks/columnGeneration/tsp/**/*</exclude>
      <exclude>**/src/test/java/org/jorlib/frameworks/**/*</exclude>
      <exclude>**/src/test/java/org/jorlib/frameworks/columnGeneration/tsp/cg/master/Master.java</exclude>
      <exclude>**/src/test/java/org/jorlib/frameworks/columnGeneration/tsp/cg/master/TSPMasterData.java</exclude>
      <exclude>**/src/test/java/org/jorlib/frameworks/columnGeneration/tsp/cg/ExactPricingProblemSolver.java</exclude>
      <exclude>**/src/test/java/org/jorlib/frameworks/columnGeneration/tsp/cg/master/cuts/SubtourInequalityGenerator.java</exclude>
      <exclude>**/src/test/java/org/jorlib/frameworks/columnGeneration/tsp/cg/master/cuts/SubtourInequalityGenerator.java</exclude>
      <exclude>**/src/**test**/java/org/jorlib/frameworks/columnGeneration/tsp/**/*</exclude>
      <exclude>**/src/**test**/java/org/jorlib/frameworks/columnGeneration/tsp/**</exclude>
      <exclude>**/src/**test**/java/org/jorlib/frameworks/columnGeneration/tsp/*</exclude>
    </excludes>
    <testExcludes>
      <exclude>**/frameworks/**</exclude>
      <exclude>**/org/jorlib/frameworks/columnGeneration/tsp/**</exclude>
      <exclude>**/org/jorlib/frameworks/columnGeneration/tsp/**/*</exclude>
      <exclude>/org/jorlib/frameworks/**</exclude>
      <exclude>**/src/test/java/org/jorlib/frameworks/*</exclude>
      <exclude>**/src/test/java/org/jorlib/frameworks/**/*</exclude>
      <exclude>**/src/test/java/org/jorlib/frameworks/columnGeneration/tsp/cg/master/Master.java</exclude>
      <exclude>**/src/test/java/org/jorlib/frameworks/columnGeneration/tsp/cg/master/TSPMasterData.java</exclude>
      <exclude>**/src/test/java/org/jorlib/frameworks/columnGeneration/tsp/cg/ExactPricingProblemSolver.java</exclude>
      <exclude>**/src/test/java/org/jorlib/frameworks/columnGeneration/tsp/cg/master/cuts/SubtourInequalityGenerator.java</exclude>
      <exclude>**/src/test/java/org/jorlib/frameworks/columnGeneration/tsp/cg/master/cuts/SubtourInequalityGenerator.java</exclude>
      <exclude>**/src/**test**/java/org/jorlib/frameworks/columnGeneration/tsp/**/*</exclude>
      <exclude>**/src/**test**/java/org/jorlib/frameworks/columnGeneration/tsp/**</exclude>
      <exclude>**/src/**test**/java/org/jorlib/frameworks/columnGeneration/tsp/*</exclude>
    </testExcludes>
</configuration>

我已经尝试了大量的排除规则(以上只是一小部分)。我运行“mvn clean; mvn test”,但我仍然不断收到内部类的编译错误

jorlib-core/src/test/java/org/jorlib/frameworks/columnGeneration/tsp

关于如何处理这个问题的任何建议?

4

1 回答 1

0

解决方案似乎很简单。以下代码就足够了(注意 testExcludes 的起诉):

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.3</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <testExcludes>
          <exclude>**/org/jorlib/frameworks/columnGeneration/tsp/**/*</exclude>
        </testExcludes>
    </configuration>
</plugin>

这对我不起作用,因为在我的代码中的其他地方我有一个孤独的 import 语句,它从我想要排除的目录中导入了一个文件。尽管根本没有使用这个特定的文件(我只是忘记删除导入语句),但仅导入语句就导致 maven 编译排除的目录。让我想知道为什么 maven 没有检测到这种“冲突”?尽管如此,我很高兴地报告我的问题已经解决。

于 2015-05-27T02:28:36.770 回答