我有一个 Eclipse Groovy 项目,比如 A,它需要引用/使用另一个 Eclipse Groovy 项目的源代码,称为 GenUtils。在 Eclipse 环境中,选择项目 A,然后选择 Properties --> Projects --> Add 并检查 GenUtils。这会在 A 的 .classpath 文件中生成以下内容:
<classpathentry kind="src" path="src"/>
...
...
<classpathentry combineaccessrules="false" kind="src" path="/GenUtils"/>
其中“/GenUtils”引用工作区中的项目。这很好用。
现在我正在尝试使用 maven-eclipse-plugin 对 Maven 执行相同的操作,以从 maven pom.xml 生成 A 的 Eclipse 项目文件。(使用 mvn eclipse:eclipse)
通过研究(我是 Maven 新手),我发现 Maven 默认不支持多个源位置,推荐的解决方案是 build-helper-maven-plugin。在我的 POM 中使用它:
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>../../GenUtils</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
我可以给出 GenUtils 项目的相对路径。这会在 .classpath 文件中生成以下内容:也就是说,项目源确实是用绝对路径引用的!不理想,但暂时可以。
问题是 Eclipse 不接受这一点并给出错误:“:是路径 'C:/_ SDE/Tools/ArttopBasedTools/GenUtils' 中的无效字符。” (错误日志),“项目 A 缺少所需的源文件夹:'C:/ _SDE/Tools/ArttopBasedTools/GenUtils'”(问题 wndow)。这可能是因为 Eclipse 期望引用其他工作区项目而不是任意目录。它期望在 .classpath 文件中有一个 path="/GenUtils" 条目,而不是完整的绝对路径。
所以问题是:有没有办法在 build-helper-maven-plugin 中指定这个?
更笼统地说:这是使另一个使用 Maven 的 Groovy Eclipse 项目可访问的正确方法吗?还是有其他推荐的解决方案?