eclipse - 是否需要同时通过 Eclipse GUI 和 Gradle 配置文件添加依赖项?

标签 eclipse git gradle gradle-eclipse buildship

需要使用 Eclipse IDE 在同一个存储库中创建两个 Gradle Git 项目。项目 A 依赖于第三方库(一个 JAR、源代码、Javadoc 和 native ),项目 B 依赖于项目 A。

没有 Gradle , 两个项目都将被创建,Git 将通过 Project Explorer > [Project Name] > Team > Share Project 启用.然后,将通过 Project Explorer > [Project Name] > Build Path > Configure Build Path 添加依赖项,后跟 Projects > AddLibraries > Add External JARs (这也将允许指定相关源代码、Javadoc 和 native 的位置)。这将使项目 B 的项目 A 的代码自动完成以及 Eclipse 中的源代码和 Javadoc 集成成为可能。

使用 Gradle ,应该手动编辑 settings.gradle 或 build.gradle 文件,而不通过 Eclipse GUI 添加依赖项,还是必须同时使用两者?此外,这对 Git 应该索引哪些 stash 文件(.project、.classpath、.settings、.gradle)有何影响?

这个设置如何 通过 Eclipse 和 Gradle ?

最佳答案

当您使用像 Gradle(或 maven)这样的构建工具时,假设构建工具负责配置项目依赖项和类路径等内容。

这种与 Eclipse UI 的冲突是为了让您通过自己的 ui 管理类路径/依赖关系而构建的。

但是,当 Eclipse JDT 编译器编译您的代码时,Eclipse UI 仅控制 Eclipse 使用的类路径……在 Eclipse 中。

因此,如果您以这种方式进行更改,那么 Gradle 将不知道这些依赖关系,并且构建将无法正常工作。

是的,这绝对令人困惑:-)

正确的做法是完全通过 gradle 管理您的依赖项和项目配置。这意味着编辑 build.gradle 和 settings.gradle。

这些工具(BuildShip 或 STS Gradle 工具)提供了一个“桥梁”来尝试和配置 Eclipse 项目以符合您的构建。

例如,他们可能会在项目上下文菜单中提供“更新项目”或“刷新依赖项”命令。

即使您不使用 Gradle 工具,这种情况也适用。然后,您将使用 Gradle 的 'ecplise' 插件并运行类似的命令

   gradle cleanEclipse eclipse

从构建配置生成 Eclipse 项目配置。然后按照 gradle 的配置将项目导入到 Eclipse 中。同样在这种情况下,使用 Eclipse UI 对构建路径进行更改是一个坏主意,因为最终它具有相同的问题,您对这些生成的文件所做的更改可能会使内容在 Eclipse 中编译,但 Gradle 不认识您改变了任何东西。下次运行 gradle cleanEclipse eclipse你的改变也被吹走了。

至于你的具体问题:

should the settings.gradle or build.gradle files be manually edited ...



是的。

... without adding dependencies through the Eclipse GUI ...



是的。

... or must both be used simultaneously?



不,只在 gradle 中配置东西。然后使用一些工具“同步”到 Eclipse (BuildShip/STS Gradle/gradle cleanEclipse eclipse )

How does this effect which hidden files should be indexed by Git (.project, .classpath, .settings, .gradle)?



一般经验法则。只索引定义 gradle 行为的东西(可能会有一些异常(exception),但一般来说,如果你有充分的理由,尽量减少它们只会违反这条规则)。

所以特别不要把这些'eclipse元数据'放入git
  • .设置
  • .project
  • .classpath

  • 一定要放入 git:gradle 包装器及其属性文件。

    Gradle 还有一个 .gradle文件夹。它属于 gradle,而不是 eclipse,而是缓存和“ transient ”的东西。你也不想要那些在 git 中的。

    关于eclipse - 是否需要同时通过 Eclipse GUI 和 Gradle 配置文件添加依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38526776/

    相关文章:

    android - 在 Eclipse 中使用 Android 库并跳转到类文件而不是 Eclipse 工作区内的源文件

    git - 中止 git merge 并返回到未提交的工作

    gradle - 在Azure Devops中绕过Gradle单元测试?

    Gradle插件开发(Java代码): Update extension properties for Internal applied Plugin

    eclipse - Symfony2 : Is there a symfony2 plugin for Aptana/Eclipse?

    eclipse - 无法使用 m2e 插件在 Eclipse Kepler 中搜索 Artifact

    java - AWT/SWT 组件的闪烁问题

    git - 如何显示子模块获取的进度?

    git - 如何将 cvs2git 迁移结果导入 bitbucket

    java - Gradle 构建错误地失败,因为 "@Override method does not override method from superclass"