Gradle 项目与任务2025年3月17日 | 阅读 7 分钟 Gradle 构建由一个或多个项目组成。 Gradle 中的一切都基于项目和任务。 Gradle 任务在 Gradle 中,任务是构建执行的单个工作单元。这些任务可以是编译类、创建 JAR、生成 Javadoc, 以及将一些归档文件发布到存储库等等。 它可以被认为是构建过程的单个原子工作单元。 Gradle 的优势在于其可扩展的模型; 任务是这个模型的核心。 任务是 Gradle 功能的自包含单元。 任务的本质是它的动作。 例如,我们可以声明一个任务来编译 Java 源代码,或者将一些数据从一个目录复制到另一个目录。 任务可以单独执行某些操作,但我们也可以声明对其他任务的依赖关系。 任务还可以定义它的输入和从中读取和写入的文件输出。 这允许 Gradle 确定是否需要完成任务。 Gradle 项目在 Gradle 中,一个项目显示一个库 JAR 或一个 Web 应用程序。 它还可以提供一个分发 ZIP,该 ZIP 由其他项目生成的 JAR 组装而成。 一个项目可以将我们的应用程序部署到暂存或生产环境。 Gradle 中的每个项目都由一个或多个任务组成。 在 Gradle 中,一个项目是一个或多个任务的集合。 一个项目代表一个库 JAR 或一个 Web 应用程序。 它还可以提供一个分发 ZIP,该 ZIP 由不同项目的 JAR 组装而成。 一个项目可以将我们的应用程序部署到暂存或生产环境。 一个项目可以将我们的应用程序部署到暂存或生产环境。 每个 Gradle 构建都包含一个或多个项目。 我们可以把它与一栋建筑物的例子联系起来; 它可以有任意数量的楼层。 任务类型Gradle 中有两种类型的任务。 它们如下:
默认任务默认任务是 Gradle 的预定义任务。 我们可以在我们的项目中定义它。 Gradle 允许我们定义一个或多个默认任务,如果没有指定其他任务,则执行这些任务。 我们可以通过运行 gradle task 命令来列出默认任务。 考虑下面的输出: ![]() 自定义任务Gradle 允许我们创建任务; 这些任务称为自定义任务。 自定义任务是用户定义的任务,旨在执行一些特定的工作。 语法 按照以下步骤创建自定义任务: 步骤 1: 创建一个 Gradle 项目。 要创建一个 Gradle 项目,打开 Eclipse 并导航到 new-> other 并选择 Gradle 项目。 之后,按照一些必要的步骤。 步骤 2: 浏览项目并打开 build.gradle 文件。 ![]() 步骤 3: 在 build.gradle 文件中添加任务代码。 考虑下面的例子: 步骤 4: 打开命令行并将目录更改为 Gradle 项目的位置。 此外,我们可以从 Eclipse 中这样做,右键单击项目并选择属性。 ![]() 单击资源,然后单击位置。 ![]() 在地址栏中键入 cmd 以在此目录中打开命令行。 ![]() 步骤 5: 要了解默认任务并在项目中定义任务,请键入 gradle tasks 命令。 ![]() 步骤 6: 现在,要执行我们的自定义任务,请运行命令 gradle taskname(因为任务名称是 Javatpoint,所以 gradle javatpoint)。 考虑下面的输出: ![]() 使用 DSL 特定语法定义任务在一个新文件夹中,创建一个 build.gradle 文件(用 Groovy DSL 编写),或一个 build.gradle.kts 文件(用 Kotlin DSL 编写),其中包含以下代码: 上面的 Groovy 代码将注册一个新的必需任务,称为 hello,并将消息打印到控制台。 保存文件并运行以下命令: 用 Kotlin DSL 编写)其中包含以下代码:我们的新任务将出现在其他任务下。 要验证我们的任务是否已创建,请运行以下命令: 使用字符串定义任务名称我们可以使用字符串来定义任务名称。 例如,我们想要定义一个任务名称 'hello,',将以下代码放在 build.gradle 文件中: 还有另一种定义任务的方式(我们也可以使用任务容器定义任务)。 使用任务容器定义任务TaskContainer 管理一组 Task 实例。 我们可以通过调用 Project.getTasks() 访问 TaskContainer 实例,或者我们可以使用构建脚本中的 tasks 属性。 使用 TaskContainer 定义任务的“hello world”示例如下: 在这里,我们可以将任务添加到任务集合中。 自定义任务中的 doFirst 和 doLast 块在 Gradle 中,doFirst 和 doLast 是自定义任务的两个不同块。 这些块定义在块部分内。 在 doFirst 块中,我们确定要首先执行的任务,而 doLast 块用于最后运行任务。 考虑下面的代码片段: Gradle 中的复制任务Gradle 允许我们将任务从一个目录复制到另一个目录。 使用以下语法复制任务: 任务分组在 Gradle 中,我们可以对任务进行分组。 要对任务进行分组,我们将对所有任务使用相同的组名。 要对两个名为 javatpoint1 和 javatpoint2 的任务进行分组,请编写以下代码到 build.gradle 文件: 跳过任务在 Gradle 中,有多种方法可以跳过任务的执行。 要跳过任务,请将 onlyIf() 附加到任务代码。 考虑下面的代码片段: 使用谓词跳过任务在 Gradle 中,onlyif() 方法可以附加一个谓词。 在这种情况下,任务仅在谓词为真时执行。 谓词实现为一个闭包,并传递一个参数。 如果任务已执行,则返回 true,否则返回 false。 如果跳过该任务。 在任务之前评估谓词。 考虑下面的代码片段: 使用 StopExecutionException 跳过任务在 Gradle 中,我们还可以使用 StopExecutionException 而不是谓词来跳过任务。 如果将此异常抛给一个任务,则会跳过该任务的操作,并且构建会继续执行下一个任务。 考虑下面的代码片段: 启用和禁用任务Gradle 允许我们启用和禁用任务; 默认情况下,它是启用的。 要禁用任务,我们必须将其标记为 SKIPPED。 考虑下面的代码片段: Gradle 中的任务依赖当一个任务依赖于另一个任务时,使用任务依赖。 dependsOn 关键字与任务名称一起使用,以使任务具有依赖性。 考虑下面的例子,它包含两个名为 JavatpointOperation1 和 JavatpointOperation2 的任务。 第二个任务具有带有第一个任务的“depends on”关键字,这意味着第二个任务仅在第一个任务成功执行后才执行 Gradle 中任务的快捷方式表示法我们可以创建现有任务的快捷方式,并且每个任务都被视为构建脚本的属性。 为此,请在 build.gradle 文件中添加以下代码片段。 任务中的自定义属性在 Gradle 中,我们可以创建和添加我们的属性到一个任务。 要添加属性,请将 ext.myProperty 设置为任务的初始值。 考虑下面的代码片段: 下一个主题Gradle 构建扫描 |
我们请求您订阅我们的新闻通讯以获取最新更新。