我在一个小型开发环境中使用Eclipse,其中一个开发人员拥有一台Windows PC而另一个开发人员拥有一台MacBook。我们使用subversion存储库共享代码,并使用Maven作为“外部工具”(不使用m2e插件)。
我们每个人都有一个M2_REPO变量,它可以很好地解析我们两个系统上.jar文件的路径。然而,最近,我发出命令告诉Maven取消源和javadoc。
mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
从那以后,我在我的.classpath中看到一些非常以Windows为中心的引用,这些引用对于我的Mac使用的朋友来说是一种新生。
<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.jar"
sourcepath="M2_REPO/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4-sources.jar">
<attributes>
<attribute value="jar:file:/C:/Users/John/.m2/repository/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4-javadoc.jar!/" name="javadoc_location"/>
</attributes>
</classpathentry>
即使删除了downloadSources和downloadJavadocs参数,并且在我的maven-eclipse-plugin的插件配置中验证它们是错误的,删除了我的.classpath文件,然后重新mvn eclipse:eclipse
我仍然看到那些不需要的引用放入我的.classpath文件。
是否有人找到了解决此问题的良好工作方案?我是否忽略了一些设置,告诉Maven在其对javadoc文件的引用中使用M2_REPO变量?
答案 0 :(得分:3)
在我的团队中,我们不会将Eclipse .settings
或.classpath
文件提交到源代码管理中。当我们最初检查项目时,我们使用m2e来构建类路径(使用eclipse目标,就像你曾经一样)并且无论开发人员使用什么平台,一切都正确设置。我们有人使用Win 7,Mac和各种Linux风格,构建机器是Linux,没有我在任何地方都知道的问题。
答案 1 :(得分:1)
我不使用maven,我是唯一的开发人员,我有一台Windows PC和一台Mac。对我来说,这个“小”解决方案运行正常。创建一个symbolik链接,以便两个系统上的路径匹配:
C:\> mklink /d "C:\Users\xxx\android-sdks" "C:\Users\xxx\AppData\Local\Android\android-sdk"
我是在Windows机器上做到的。该命令是mklink / d(用于目录)newDir existingDir。至少适用于Windows 7。也许这会有所帮助。
答案 2 :(得分:0)
尝试通过以下方式启用maven项目的依赖关系管理:
右键单击项目 - &gt; Maven - &gt;启用依赖关系管理
删除并重新创建.classpath文件后。
答案 3 :(得分:0)
不是使用'mvn eclipse:eclipse',而是从项目站点或通过Eclipse Marketplace安装M2Eclipse。它将为您处理所有链接,而不是嵌入绝对路径。
(我总是版.classpath和.settings /)
答案 4 :(得分:0)
如果您的存储库中有javadoc,maven eclipse插件将始终将它们添加到您的类路径中。
-DdownloadJavadocs = true选项只告诉eclipse插件下载它们。它不会告诉插件是否在它们的类路径中包含它们。如果您不再需要它们在类路径中,则必须从本地存储库中删除所有 -javadoc。(或删除您的定位存储库)。