文章目录
Gradle 简介安装 Gradle创建和配置 Gradle 项目将 Gradle 项目打成jar包多项目聚合示例项目结构步骤详解
Gradle 简介
Gradle 是一个基于 Groovy 和 Kotlin 的构建工具,用于自动化构建、依赖管理和项目管理。它结合了 Maven 的依赖管理和 Ant 的灵活性,提供了一种现代化的构建解决方案。与传统的 Apache Maven 和 Apache Ant 相比,它提供了更灵活、高效的构建系统和声明式的构建脚本语言。
安装 Gradle
安装 Gradle 非常简单,可以按照以下步骤进行:
下载 Gradle:下载地址
访问 Gradle 官网下载页面,选择最新版本的 Gradle,下载对应的压缩包(例如 .zip 或 .tar.gz)。
解压 Gradle:
解压下载的压缩包到你选择的目录。
配置环境变量
在 Windows 系统中,设置系统环境变量 GRADLE_HOME 指向 Gradle 的安装目录,并将 %GRADLE_HOME%\bin 添加到系统 PATH 变量中。
设置系统环境变量GRADLE_HOME
添加到系统 PATH:
打开命令行,输入 gradle -v,如果显示 Gradle 的版本信息,则说明安装成功。
创建和配置 Gradle 项目
现在,让我们创建一个简单的 Java 项目,并使用 Gradle 进行配置和管理。
IntelliJ IDEA 提供了良好的 Gradle 支持,让我们结合实际操作,演示如何创建和配置一个简单的 Java 项目,并使用 Gradle 构建和运行项目。
打开 IntelliJ IDEA,选择 File -> New -> Project。
在弹出的窗口中,选择 Gradle,然后点击 Next。
build.gradle:
plugins { id 'java'}group 'com.ruofei'version '1.0-SNAPSHOT'repositories { mavenCentral()}dependencies { implementation 'com.google.guava:guava:30.1.1-jre' testCompile group: 'junit', name: 'junit', version: '4.12'}
点击run导入依赖
测试导入一个google的包
package com.ruofei;import com.google.common.collect.ImmutableList;public class App { public static void main(String[] args) { ImmutableList<String> list = ImmutableList.of("Hello", "Gradle"); System.out.println("Greetings from Gradle: " + list); }}
构建项目:
在 IntelliJ IDEA 的右侧 Gradle 工具窗口中,展开你的项目,找到 Tasks -> build,双击运行构建任务。
运行项目
将 Gradle 项目打成jar包
修改build.gradle在build.gradle中添加:
// 配置 JAR 打包任务jar { manifest { attributes( 'Main-Class': 'com.ruofei.App' // 修改为你的主类 ) } // 如果需要包含资源文件或其他目录,可以通过以下方式配置 // 包含依赖项 from { configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) } }}
右侧gradle目录点击build在/build/libs/ 目录下生成相应的jar包,可以直接java -jar 执行
多项目聚合
演示一个简单的示例,主项目为一个 Java 应用程序,包含两个子项目:一个是 Java 库项目,另一个是 Java 应用程序项目。我们将展示如何设置和管理这些项目的依赖关系和构建过程。
示例项目结构
主项目: multi-project-demo 子项目1: library 提供一些工具类和服务 子项目2: application 使用 library 子项目的功能来创建一个应用程序步骤详解
1. 创建主项目
首先,在 IntelliJ IDEA 中创建一个新的 Gradle 项目作为主项目 multi-project-demo。
1. 打开 IntelliJ IDEA,选择 File -> New -> Project。
2. 选择 Gradle 作为项目类型,点击 Next。
3. 输入项目名称为 multi-project-demo
,选择存储路径,点击 Next。
4. 选择 Java,点击 Next。
5. 最后点击 Finish 完成项目的创建。
2. 添加子项目 library
接下来,我们将添加第一个子项目 library 到主项目中。
1. 在 IntelliJ IDEA 的主项目 multi-project-demo
中,右键点击主项目的根目录,选择 New -> Module。
2. 选择 Gradle,点击 Next。
3. 输入子项目的名称为 library
,选择存储路径,点击 Finish。
3. 添加子项目 application
然后,我们再添加第二个子项目 application。
1. 在 IntelliJ IDEA 的主项目 multi-project-demo
中,右键点击主项目的根目录,选择 New -> Module。
2. 选择 Gradle,点击 Next。
3. 输入子项目的名称为 application
,选择存储路径,点击 Finish。
4. 子项目 application的build.gradle中添加对lib项目的依赖:
build.gradle:
plugins { id 'java'}group 'org.example'version '1.0-SNAPSHOT'repositories { mavenCentral()}dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' implementation project(':library')}
4. 配置 settings.gradle
现在,我们需要在主项目的 settings.gradle 文件中声明这两个子项目。
1. 打开 multi-project-demo
主项目的根目录。
2. 打开或者创建 settings.gradle
文件。
3. 在文件中添加以下内容(可能已经默认添加了):
include 'library'include 'application'
这样就声明了 library 和 application 两个子项目。
5. 配置主项目 build.gradle
在主项目的 build.gradle 文件中配置主项目和所有子项目的依赖关系和其他设置。
plugins { id 'java'}group 'org.example'version '1.0-SNAPSHOT'repositories { mavenCentral()}dependencies { testCompile group: 'junit', name: 'junit', version: '4.12'}// 子项目配置subprojects { // 应用 Java 插件 apply plugin: 'java' // 配置项目依赖关系和版本控制 dependencies { // 这里可以添加主项目的通用依赖 // 例如: implementation 'com.google.guava:guava:30.1-jre' } // 所有子项目共享的配置 configure([JavaCompile, Test]) { // 这里可以配置所有 Java 编译和测试任务的共享设置 sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 }}// 主项目特有的配置
在这个示例中:
主项目应用了 java 插件,确保项目可以编译和运行 Java 代码。使用 subprojects 块配置了所有子项目共享的配置。6. 编写和运行子项目代码
现在我们可以在每个子项目中编写代码,并且可以在 IntelliJ IDEA 中构建和运行它们。
例如,在 library 子项目中创建一个简单的 Java 类:
public class Library { public void greet() { System.out.println("Hello from Library!"); }}
在 application 子项目中使用 library 子项目的功能:
package com.example;public class App { public static void main(String[] args) { Library library = new Library(); library.greet(); }}
7. 构建和运行子项目
在 IntelliJ IDEA 的 Gradle 工具窗口中,可以看到主项目和所有子项目。你可以双击每个子项目的任务(如 build 等),Gradle 将会执行这些任务。
对于 library 子项目,可以运行 build 任务来编译和打包库。
对于 application 子项目,可以运行 run 任务来运行应用程序。