Gradle

Gradle

CLI / shell command: gradle

自动化构建系统。

Installation & Config

安装

https://docs.gradle.org/current/userguide/installation.html

Windows:

1. install chocolatey package manager (https://chocolatey.org/)

cmd:

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

2. install gradle via chocklatey

choco install gradle

配置

禁用 Gradle daemon (这个傻逼 daemon 总是有问题)

// add org.gradle.daemon=false to the <GRADLE_USER_HOME>/gradle.properties file
// <GRADLE_USER_HOME> defaults to <USER_HOME>/.gradle

Quick way:

Windows cmd:

(if not exist "%USERPROFILE%/.gradle" mkdir "%USERPROFILE%/.gradle") && (echo. >> "%USERPROFILE%/.gradle/gradle.properties" && echo org.gradle.daemon=false >> "%USERPROFILE%/.gradle/gradle.properties")

Linux shell:

mkdir -p ~/.gradle && echo "org.gradle.daemon=false" >> ~/.gradle/gradle.properties

Build Java Quick Start

** 除非迫不得已,强烈不建议使用傻逼 Java 开发任何项目。 **

用 Gradle 构建傻逼 Java 的项目。

Folder structure

<project_root>
|- build.gradle
|- src/main/java/
|- src/main/java/fuck.java/ # <package_name>
|- src/main/java/fuck.java/FuckYouJava.java
|- libs/
|- libs/*.jar

build.gradle

apply plugin: 'java'
apply plugin: 'application'

mainClassName='fuck.java.FuckYouJava'

repositories {
  mavenCentral()
}

dependencies {
  implementation 'io.reactivex:rxjava:1.1.0'
  implementation fileTree(dir: 'libs', include: ['*.jar'])
}

defaultTasks 'run'

FuckYouJava.java

src/main/java/fuck.java/FuckYouJava.java

package fuck.java;

class FuckYouJava{
  public static void main(String[] args) { // 傻逼 Java 里函数是二等公民,什么东西都要包裹个去你妈的类
    try {
      System.out.println("Fuck You Java!");
    } catch( Exception e) { // 傻逼 Java 默认异常退出时仍然返回 0 exit code,纯属弱智。
      e.printStackTrace();
      System.exit(1);
    }
  }
}

然后在项目根目录运行 gradle 即可。

build fatJar

version = '1.0.0'

task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'App',
            'Implementation-Version': version,
            'Main-Class': 'com.example.App'
    }
    baseName = project.name + '-all'
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    from { configurations.implementation.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}

Use specific JDK version

build.gradle (require gradle 7.3+)

java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(7))
    }
}

会自动在系统里寻找安装的匹配的 JDK 版本。例如对于 Windows 会寻找 "C:\Program Files\Java" 里安装的所有 JDK。

Sublime Text Integration

Sublime Text menus -> Tools -> Build System -> New Build System

Edit the new file with below contents and save it as "java_gradle.sublime-build"
{
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": ["source.java"],
    "shell_cmd": "gradle -Pmain=\"${file_base_name}\""
}

Usage:

In sublime Text, Ctrl + b shortcut to trigger build system.


Last update: 2022-06-21 02:28:02 UTC