gradle快速构建一个可执行的java项目

项目结构如下
项目根目录

++++src
    ----indi.yftao
        ++++Main.java
        ----xx.kt
----build.gradle

Step1: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'
    }
}

Step2:在src目录的包路径下编写入口类(带静态main函数,注意buil.gradle中的Main-Class设置),然后在项目根目录下执行构建命令:
gradle clean build

得到的jar包在build/libs下面

Step3:直接执行:
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'
    }
}

你可能感兴趣的:(build,java)