在混合的Windows / Mac团队环境中与Eclipse修改的.classpath进行搏斗

时间:2012-05-08 14:36:31

标签: eclipse maven javadoc

我在一个小型开发环境中使用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变量?

5 个答案:

答案 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。(或删除您的定位存储库)。