0

我在一个小型开发环境中使用 Eclipse,其中一个开发人员拥有一台 Windows PC,而另一个开发人员拥有一台 MacBook。我们使用 subversion 存储库共享代码,并使用 Maven 作为“外部工具”(不使用 m2e 插件)。

我们每个人都有一个 M2_REPO 变量,该变量在我们两个系统上解析 .jar 文件的路径时效果很好。然而,最近,我运行了一个命令来告诉 Maven 拉下源代码和 javadocs。

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 变量的设置?

4

5 回答 5

3

在我的团队中,我们不会将 Eclipse.settings.classpath文件提交到源代码控制中。当我们最初检查项目时,我们使用 m2e 来构建类路径(从前使用 eclipse 目标进行)并且无论开发人员使用什么平台,一切都设置正确。我们有人使用 Win 7、Mac 和各种 Linux 版本,构建机器是 Linux,我不知道任何问题。

于 2012-05-08T16:11:32.460 回答
1

我不使用 maven,我是唯一的开发人员,我有一台 Windows PC 和一台 Mac。对我来说,这个“小”解决方案效果很好。创建一个符号链接,以便您在两个系统上的路径匹配:

C:\> mklink /d "C:\Users\xxx\android-sdks" "C:\Users\xxx\AppData\Local\Android\android-sdk"

我在windows机器上做了这个。命令是 mklink /d(对于目录)newDir existingDir。至少在 Windows 7 上工作。也许这会有所帮助。

于 2013-08-01T18:47:52.833 回答
0

与其使用“mvn eclipse:eclipse”,不如从项目站点或通过 Eclipse Marketplace安装M2Eclipse 。它将为您处理所有链接,而不是嵌入绝对路径。

(我总是版本 .classpath 和 .settings/)

于 2012-05-08T20:48:40.820 回答
0

尝试通过以下方式启用 Maven 项目的依赖管理:

项目右键->Maven->启用依赖管理

在此之后删除并重新创建您的 .classpath 文件。

于 2012-05-08T14:59:40.717 回答
0

如果您的存储库中有 javadocs,maven eclipse 插件将始终将它们添加到您的类路径中。

-DdownloadJavadocs=true 选项只告诉 eclipse 插件下载它们。它不会告诉插件是否将它们包含在您的类路径中。如果您不再希望它们出现在类路径中,则必须删除所有-javadoc。从您的本地存储库(或删除您的定位存储库)。

于 2013-05-03T11:38:26.930 回答