📜  Gradle-部署(1)

📅  最后修改于: 2023-12-03 15:01:03.815000             🧑  作者: Mango

Gradle 部署

什么是 Gradle?

Gradle 是一个基于 Apache Maven 和 Apache Ant 的项目自动化构建工具。它使用一种基于 Groovy 的特定领域语言 (DSL) 来声明项目设置, 允许开发者快速定义复杂的构建脚本, 并利用强大的生命周期钩子, 易于扩展和定制化。

Gradle 构建流程
  1. 初始化
  2. 配置
  3. 执行
  4. 完成

Gradle 的核心流程由上面这四个步骤组成。在初始化阶段,Gradle 会加载并解析构建脚本 (build.gradle)。在配置阶段,Gradle 根据构建脚本中定义的任务及其依赖关系构建出任务执行图。在执行阶段,Gradle 会执行各个任务,并根据任务的执行结果及其依赖关系调整任务执行顺序。在最后的完成阶段,Gradle 会发布构建结果,清理占用的资源等等。

Gradle 部署

Gradle 的部署过程主要分为以下两种方式:

发布到本地 Maven 仓库

Gradle 可以将项目构建结果发布到本地 Maven 仓库,以供其他项目使用。以下是一个样例 build.gradle 文件:

apply plugin: 'java'
apply plugin: 'maven'

group = 'com.example'
version = '1.0-SNAPSHOT'

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    // add project dependencies here
}

task sourcesJar(type: Jar) {
    from sourceSets.main.allSource
    classifier = 'sources'
}

task javadocJar(type: Jar) {
    from javadoc.destinationDir
    classifier = 'javadoc'
}

artifacts {
    archives sourcesJar
    archives javadocJar
}

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: uri('../repo'))
        }
    }
}

上述构建脚本中包含以下元素:

  • 项目组(group)和版本(version)的定义。
  • 依赖声明(dependencies)、源码和文档生成任务定义(sourcesJar, javadocJar)以及部署任务定义(uploadArchives)。

任务的执行方式为 gradle uploadArchives。

发布到远程 Maven 仓库

Gradle 还支持将项目构建结果部署到远程 Maven 仓库,这将方便其他开发者在自己的项目中引用该项目。以下是一个样例 build.gradle 文件:

apply plugin: 'java'
apply plugin: 'maven'

group = 'com.example'
version = '1.0-SNAPSHOT'

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    // add project dependencies here
}

task sourcesJar(type: Jar) {
    from sourceSets.main.allSource
    classifier = 'sources'
}

task javadocJar(type: Jar) {
    from javadoc.destinationDir
    classifier = 'javadoc'
}

artifacts {
    archives sourcesJar
    archives javadocJar
}

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "http://localhost:8081/nexus/content/repositories/releases/")
            pom.groupId = 'com.example'
            pom.artifactId = 'my-lib'
            pom.version = '1.0'
        }
    }
}

上述构建脚本中的部署任务(uploadArchives)中指定了一个远程 Maven 仓库的地址。通过 MavenDeployer 对象的 pom 属性,我们可以设置部署结果的 groupId、artifactId 和 version 等属性。

任务的执行方式为 gradle uploadArchives。

结语

Gradle 是一个强大的项目构建工具,除了上述的部署方式,它还支持其他丰富的功能,如多工程构建、依赖管理等等。如果您想深入了解 Gradle 更多的高级功能,可以查阅 Gradle 官网的文档或参照其他开源项目的构建脚本来学习。