概述

随着作为MECLIPSE-443“仅在 Java 源目录中包含 **/*.java”的一部分完成的更改,classpathentry kind="src" 的 .classpath 条目现在指定了一个值为“**/*”的包含属性。爪哇”。以前未指定此属性,这意味着 Eclipse 将包含此 src 目录中的任何文件,因为它位于类路径上并因此被编译。

这破坏了 Ajdt 支持,因为“**/*.aj”文件不再包含在类路径中,MECLIPSE-538修复了这个问题。

添加了 MECLIPSE-104 “添加指定源包含/排除的功能” ,从而恢复了这种灵活性。

总之:

  • 如果您的项目是 java 项目,则“**/*.java”将始终添加到源目录的包含属性中。
  • 如果您的项目是 ajdt 项目,则“**/*.aj”将始终添加到源目录的 include 属性中。
  • 如果您需要源目录的任何其他包含或排除项,请使用配置元素 sourceIncludes/sourceExcludes

示例 - 指定 sourceIncludes/sourceExcludes

<project>
  [...]
  <build>
    [...]
    <plugins>
      [...]
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-eclipse-plugin</artifactId>
        <version>2.9</version>
        <configuration>
          <sourceExcludes>
            <sourceExclude>**/.svn/**</sourceExclude>
          </sourceExcludes>
          <sourceIncludes>
            <sourceInclude>**/*.myExtension</sourceInclude>
          </sourceIncludes>
        </configuration>
      </plugin>
      [...]
    </plugins>
    [...]
  </build>
  [...]
</project>

这将导致.classpath文件具有类似于以下的源目录条目:

  <classpathentry kind="src" path="src/main/java" including="**/*.myExtension|**/*.java" excluding="**/.svn/**"/>