Gradle可以与许多不同的第三方工具集成,例如IDE和持续集成平台. 在这里,我们看一些更常见的工具,以及如何将自己的工具与Gradle集成.

IDEs

Android Studio

作为IntelliJ IDEA的变体, Android Studio内置了对导入和构建Gradle项目的支持. 如果需要,您还可以使用IDEA Gradle插件来微调导入过程.

该IDE还具有广泛的用户指南 ,可帮助您充分利用IDE和Gradle.

Eclipse

If you want to work on a project within Eclipse that has a Gradle build, you should use the Eclipse Buildship plugin. This will allow you to import and run Gradle builds. If you need to fine tune the import process so that the project loads correctly, you can use the Eclipse Plugins for Gradle. See the associated release announcement for details on what fine tuning you can do.

IntelliJ IDEA

IDEA具有导入Gradle项目的内置支持. 如果您需要微调导入过程以正确加载项目,则可以使用IDEA Plugin for Gradle .

NetBeans

Gradle支持插件添加到NetBeans中,以便使用Gradle构建导入和运行项目.

Visual Studio

为了开发C ++项目,Gradle附带了Visual Studio插件 .

Xcode

为了开发C ++项目,Gradle附带了Xcode插件 .

CLion

JetBrains支持使用Gradle构建C ++项目 .

Continuous integration

我们有专门的指南,向您展示如何将Gradle项目与以下CI平台集成:

即使您不使用上述方法之一,您也几乎可以确定将CI平台配置为使用Gradle Wrapper脚本.

How to integrate with Gradle

将工具与Gradle集成的主要方法有两种:

  • Gradle构建使用该工具

  • 该工具执行Gradle构建

前一种情况通常实现为Gradle插件 . 后者可以通过在Tooling API中嵌入Gradle来实现,如下所述.

Embedding Gradle using the Tooling API

Introduction to the Tooling API

Gradle提供了一个称为Tooling API的编程API,您可以使用该API将Gradle嵌入到自己的软件中. 该API允许您执行和监视构建,并向Gradle查询构建的详细信息. 该API的主要受众是IDE,CI服务器和其他UI作者; 但是,该API对需要将Gradle嵌入其应用程序的任何人都是开放的.

Tooling API Features

Tooling API的基本特征是它以与版本无关的方式运行. 这意味着您可以使用相同的API来处理使用不同版本的Gradle的版本,包括比所使用的Tooling API版本新或旧的版本. Tooling API支持Gradle包装器,默认情况下,使用与由包装器支持的版本使用的Gradle版本相同的Gradle版本.

工具API提供的一些功能:

  • 查询构建的详细信息,包括项目层次结构和项目依赖项,外部依赖项(包括源和Javadoc jar),每个项目的源目录和任务.

  • 执行构建并收听stdout和stderr日志记录和进度消息(例如,在命令行上运行时,"状态栏"中显示的消息).

  • 执行特定的测试类或测试方法.

  • 在执行构建时接收有趣的事件,例如项目配置,任务执行或测试执行.

  • 取消正在运行的生成.

  • 将多个单独的Gradle构建合并到一个复合构建中.

  • Tooling API可以下载并安装适当的Gradle版本,类似于包装程序.

  • 该实现是轻量级的,仅具有少量依赖性. 它也是一个行为良好的库,并且不对您的类加载器结构或日志记录配置进行任何假设. 这使API易于嵌入到您的应用程序中.

Tooling API and the Gradle Build Daemon

工具API始终使用Gradle守护程序. 这意味着随后对Tooling API的调用,无论是模型构建请求还是任务执行请求,都将在相同的长期过程中执行. Gradle守护程序包含有关该守护程序的更多详细信息,尤其是有关新守护程序被派生时的情况的信息.

Quickstart

由于Tooling API是开发人员的接口,因此Javadoc是其主要文档. 我们在您的Gradle发行samples/toolingApi中提供了一些样本 ,这些样本存在于samples/toolingApi中. 这些示例指定了Tooling API所需的所有依赖关系,并提供了示例,这些示例用于从Gradle构建中查询信息并从Tooling API执行任务.

要使用Tooling API,请将以下存储库和依赖项声明添加到构建脚本中:

例子1.使用工具API
build.gradle
repositories {
    maven { url 'https://repo.gradle.org/gradle/libs-releases' }
}

dependencies {
    implementation "org.gradle:gradle-tooling-api:$toolingApiVersion"
    // The tooling API need an SLF4J implementation available at runtime, replace this with any other implementation
    runtimeOnly 'org.slf4j:slf4j-simple:1.7.10'
}
build.gradle.kts
repositories {
    maven { url = uri("https://repo.gradle.org/gradle/libs-releases") }
}

dependencies {
    implementation("org.gradle:gradle-tooling-api:$toolingApiVersion")
    // The tooling API need an SLF4J implementation available at runtime, replace this with any other implementation
    runtimeOnly("org.slf4j:slf4j-simple:1.7.10")
}

Tooling API的主要入口点是GradleConnector . 您可以从那里导航以找到代码示例,并浏览可用的Tooling API模型. 您可以使用GradleConnector.connect()创建一个ProjectConnection . 一个ProjectConnection连接到单个Gradle项目. 使用该连接,您可以执行任务,测试并检索与该项目相关的模型.

Gradle version and Java version compatibility

Provider side

当前版本的Tooling API支持使用Gradle 2.6及更高版本运行构建.

Consumer side

当前版本的Gradle支持通过Tooling API版本3.0及更高版本运行构建.

您应该注意,并非Tooling API的所有功能都适用于所有版本的Gradle. 有关更多详细信息,请参阅每个类和方法的文档.

Java version

工具API需要Java 8或更高版本. 内部版本使用的Gradle版本可能还有其他Java版本要求.