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无法解析此库的源位置。
有什么想法吗?
答案 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文件条目。