0

我有一个 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 项目可访问的正确方法吗?还是有其他推荐的解决方案?

4

0 回答 0