Eclipse - 使用环境变量指向.classpath中sourcepath属性中的本地maven repo

时间:2012-08-08 22:40:44

标签: eclipse maven

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无法解析此库的源位置。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

使用maven 2,您可以在Eclipse中设置M2_REPO类路径变量,maven eclipse:eclipse将在.classpath文件中自动使用它。详情请见:http://www.mkyong.com/maven/how-to-configure-m2_repo-variable-in-eclipse-ide/

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

答案 1 :(得分:0)

你提交.classpath或.project文件并不是一个好主意。 但是,与m2e添加该值的方式相同,就像其他用户的插件一样。如果需要,Maven将下载其他用户的PC上所需的文件(即不在其本地仓库中),并在.classpath文件中提供正确的源路径。

希望有所帮助!

答案 2 :(得分:0)

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

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