项目初始化
初始化项目
init 初始化
$ mkdir demo
$ cd demo
在新项目目录下,在终端使用以下命令运行gradle init
。当提示时,选择2:应用程序
项目类型和3:Java
作为实现语言。接下来你可以选择用于编写构建脚本的1: Groovy
或2: Kotlin
。对于其他问题,按回车键,使用默认值。
$ gradle init
Select type of project to generate:
1: basic
2: application
3: library
4: Gradle plugin
Enter selection (default: basic) [1..4] 2
Select implementation language:
1: C++
2: Groovy
3: Java
4: Kotlin
5: Scala
6: Swift
Enter selection (default: Java) [1..6] 3
Select build script DSL:
1: Groovy
2: Kotlin
Enter selection (default: Groovy) [1..2] 1
Select test framework:
1: JUnit 4
2: TestNG
3: Spock
4: JUnit Jupiter
Enter selection (default: JUnit 4) [1..4]
Project name (default: demo):
Source package (default: demo):
BUILD SUCCESSFUL
2 actionable tasks: 2 executed
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── app
├── build.gradle
└── src
├── main
│ └── java
│ └── demo
│ └── App.java
└── test
└── java
└── demo
└── AppTest.java
其中,
-
rootProject.name
为构建指定了一个名称,它覆盖了以构建所在的目录命名的默认行为。建议设置一个固定的名字,因为如果项目是共享的–例如作为Git 仓库的根目录,文件夹可能会改变。 -
include("app")
定义构建由一个名为app
的子项目组成,包含实际的代码和构建逻辑。更多的子项目可以通过额外的`include(..) ‘语句添加。
我们的构建包含一个名为
plugins {
id 'application'
}
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter:5.7.1'
implementation 'com.google.guava:guava:30.1-jre'
}
application {
mainClass = 'demo.App'
}
tasks.named('test') {
useJUnitPlatform()
}
运行与打包
package demo;
public class App {
public String getGreeting() {
return "Hello World!";
}
public static void main(String[] args) {
System.out.println(new App().getGreeting());
}
}
// 对应的测试文件如下
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class AppTest {
@Test void appHasAGreeting() {
App classUnderTest = new App();
assertNotNull(classUnderTest.getGreeting(), "app should have a greeting");
}
}
多亏了
$ ./gradlew run
> Task :app:run
Hello world!
BUILD SUCCESSFUL
2 actionable tasks: 2 executed
第一次运行包装脚本
$ ./gradlew build
BUILD SUCCESSFUL in 0s
7 actionable tasks: 7 executed
如果你如上所示运行一个完整的构建,app/build/distributions/app.tar
和app/build/distributions/app.zip
。了解你的构建在幕后做什么的最好方法是发布一个构建扫描。要做到这一点,只需用--scan
标记运行
$ ./gradlew build --scan
BUILD SUCCESSFUL in 0s
7 actionable tasks: 7 executed
Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Service defined at https://gradle.com/terms-of-service.
Do you accept these terms? [yes, no] yes
Gradle Terms of Service accepted.
Publishing build scan...
https://gradle.com/s/5u4w3gxeurtd2