gradle実行可能なjavaプロジェクトを迅速に構築

4558 ワード

プロジェクト構造は次のプロジェクトルートディレクトリです.
++++src
    ----indi.yftao
        ++++Main.java
        ----xx.kt
----build.gradle

Step 1:build.gradleは次のように構成されています.
apply plugin: 'java'
//  Java      ,   src/main/java
sourceSets {
    main.java.srcDirs += 'src'
    test.java.srcDirs += 'test'
}
repositories {
    mavenCentral()
}
dependencies {
    compile group: 'com.alibaba', name: 'fastjson', version: '1.2.47'
    compile 'com.google.guava:guava:16.0'
    testCompile 'junit:junit:4.12'
}
jar {
   //   jar     :
    doFirst {
        from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it)}}
    }
    manifest {
        //     ,    main    (    :  +  )
        attributes 'Main-Class': 'indi.yftao.Main'
    }
}

Step 2:srcディレクトリのパケットパスの下にエントリクラス(buil.gradleのMain-Class設定に注意する静的main関数付き)を作成し、プロジェクトルートディレクトリの下で構築コマンド:gradle clean buildを実行する
得られたjarパッケージはbuild/libsの下にあります
Step 3:直接実行:java-jar build/libs/.jar
kotlinをサポートするbuild.gradleファイルの内容
buildscript {
    ext.kotlin_version = '1.2.10'
    repositories {
        mavenCentral()
    }
    dependencies {
        //kotlin  
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
apply plugin: 'kotlin'
//  Java      ,   src/main/java
sourceSets {
    main.java.srcDirs += 'src'
    test.java.srcDirs += 'test'
}
repositories {
    mavenCentral()
}
dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    compile group: 'com.alibaba', name: 'fastjson', version: '1.2.47'
    compile 'com.google.guava:guava:16.0'
    testCompile 'junit:junit:4.12'
}
jar {
   //   jar     
    doFirst {
        from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it)}}
    }
    manifest {
        //     (  main  ),kotlin main          
        attributes 'Main-Class': 'indi.yftao.Main'
    }
}