0

Eclipse 的 Maven 插件正在我的本地 Maven 存储库中为我的项目引用的库之一查找相关源代码,并向我的文件添加一个sourcepath属性。.classpath

<classpathentry kind="lib" path="lib/core/guava-11.0.1.jar" sourcepath="Users/<my_user>/.m2/repository/com/google/guava/guava/11.0.1/guava-11.0.1-sources.jar">
    <attributes>
        <attribute name="javadoc_location" value="http://docs.guava-libraries.googlecode.com/git-history/v11.0.1/javadoc/"/>
    </attributes>
</classpathentry>

问题是我无法提交该.classpath文件,因为它包含我本地 Maven 存储库的硬编码路径。有没有办法告诉 Eclipse 使用像 M2_HOME 这样的环境变量来输出它?即使它不是自动化的,是否有任何我可以放在那里的令牌可以让它在没有硬编码路径的情况下解析源的位置?我试过了:

sourcepath="$M2_HOME/com/google/guava/guava/11.0.1/guava-11.0.1-sources.jar"

但是在我进行此更改后,Eclipse 无法解析此库的源位置。

有任何想法吗?

4

3 回答 3

0

你说得对,提交 .classpath 或 .project 文件不是一个好主意。然而,m2e 以同样的方式增加了这个价值,其他用户的插件也是如此。如果需要,Maven 将在另一个用户的 PC 上下载所需的文件(即不在他们的本地 repo 中),并在.classpath文件中提供正确的源路径。

希望有帮助!

于 2012-08-09T06:48:24.140 回答
0

我会将“guava-11.0.1.jar”添加到 maven 存储库中,然后将其作为依赖项添加到我的 pom.xml 中。通过这样做,您的 .classpath 文件中将不会有“classpathentry”标签。

之后,我将通过 m2eclipse 插件(Window->Maven 并检查“下载工件源”)打开源下载。以这种方式使用源不会添加任何 .classpath 文件条目。

于 2012-08-09T22:14:13.417 回答
0

使用 maven 2,您可以M2_REPO在 Eclipse 中设置类路径变量,并将在您的文件maven eclipse:eclipse中自动使用它。.classpath详细信息可以在这里看到:http ://www.mkyong.com/maven/how-to-configure-m2_repo-variable-in-eclipse-ide/

我们还没有迁移到 maven 3,所以我不确定,但我想这个变量需要M3_REPO为 maven 3 命名。

于 2012-08-09T06:37:22.233 回答