1. 程式人生 > >gradle + idea 構建 可執行的jar包

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" }