gradle + idea 构建 可运行的jar包

项目背景

需要一个在远程服务器上运行的java程序,为了精简性,没有使用springboot构建,考虑构建一个可运行的jar

gradle

  • 使用的是 IDEA 的gradle插件
  • 配置
    • 可运行的jar鲍插件gradle-capsule-plugin,会把依赖的第三方jar包和你的代码打入一个包中。
    • 添加nexus私服地址
    • sourceSets 将resources包中的配置文件打入class中。
    • 指定main方法。
    • 指定编译时使用UTF-8
group 'cn.ecotrans.move'
version '1.0-SNAPSHOT'
buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "us.kirchmeier:gradle-capsule-plugin:1.0.2"
    }
}

apply plugin: "us.kirchmeier.capsule"
apply plugin: 'java'
apply plugin: 'application'

mainClassName = 'image.move.Mover'
sourceCompatibility = 1.7

repositories {
    mavenCentral()
    maven {
        url "私服仓库"
    }
}
dependencies {

    compile "joda-time:joda-time:2.2"
    compile "fastdfs_client:fastdfs_client:1.25"

    compile "org.springframework:spring-context:4.3.9.RELEASE"
    compile group: 'org.springframework', name: 'spring-core', version: '4.3.9.RELEASE'
    compile group: 'org.springframework', name: 'spring-jdbc', version: '4.3.9.RELEASE'

    compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.42'
    testCompile group: 'junit', name: 'junit', version: '4.11'
}
sourceSets {
    main {
        output.resourcesDir = "build/classes/main"
    }
    test {
        output.resourcesDir = "build/classes/test"
    }
}


task simpleCapsule(type: FatCapsule) {
    applicationClass 'image.move.Mover'
    baseName 'Mover'
}
tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}

你可能感兴趣的:(java)