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

时间:2016-07-22 12:43:20

标签: eclipse git gradle gradle-eclipse buildship

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

不使用Gradle ,将创建​​两个项目,并使用public static void main(String[] args) { class Typed { private String type; public Typed(String type){ this.type= type; } public String getType(){ return this.type; } } List<Typed> myList = new ArrayList<>(); myList.add(new Typed("D")); myList.add(new Typed("S")); } 启用Git。然后,依赖项将通过Project Explorer > [Project Name] > Team > Share Project添加,然后是Project Explorer > [Project Name] > Build Path > Configure Build PathProjects > Add(这也将允许指定相关源代码,Javadoc和本机的位置)。这样就可以在Eclipse中自动完成 Project B Project B 的代码完成以及源代码和Javadoc集成。

使用Gradle ,是否应手动编辑 settings.gradle build.gradle 文件,而无需通过Eclipse GUI添加依赖项,或者必须同时使用?此外,这将如何影响哪些隐藏文件应由Git( .project .classpath .settings .gradle)编制索引)?

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

1 个答案:

答案 0 :(得分:0)

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

这种与Eclipse UI的冲突,它是为了允许您通过自己的ui管理类路径/依赖项而构建的。

但是当Eclipse JDT编译器编译代码时,Eclipse UI只控制eclipse用作类路径的内容...... Eclipse中。

因此,如果您以这种方式改变事物,那么Gradle将不会知道这些依赖关系,并且构建不会起作用。

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

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

工具(BuildShip或STS Gradle Tools)提供了一个“桥梁”工具。尝试按照构建来配置Eclipse项目。

例如,他们可能会提供更新项目&#39;或者&#39;刷新依赖关系&#39;项目上下文菜单中的命令。

即使您不使用Gradle工具,这种情况也适用。然后你会使用Gradle&#39; ecplise&#39;插件并运行像

这样的命令
   gradle cleanEclipse eclipse

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

关于您的具体问题:

  

是否应手动编辑settings.gradle或build.gradle文件...

  

...没有通过Eclipse GUI添加依赖项......

  

......或者必须同时使用?

不,只能在gradle中配置。然后&#39;同步它&#39;使用某种工具(BuildShip / STS Gradle / gradle cleanEclipse eclipse

进行日食
  

这会影响哪些隐藏文件应该由Git(.project,.classpath,.settings,.gradle)编制索引?

一般经验法则。仅对定义gradle行为的内容进行索引(可能存在一些例外情况,但一般情况下,如果您有充分的理由,请尽量减少它们仅违反此规则。)

所以特别要不要把这些&#39; eclipse元数据放进去#&lt;&#39;

  • .settings
  • 的.project
  • 的.classpath

放入git:gradle包装器及其属性文件。

Gradle还有一个.gradle文件夹。它属于gradle,而不是eclipse,但它们是缓存和瞬态的东西。你也不想要那些使用git的人。