2017-08-25 22 views
1

実行可能なjarファイルを作成するためのgradleビルドスクリプトがあります(depenenciesもjarファイルです)。それをgradleスクリプトkotlinに変換する方法を知っている。私はbootRepackage、profile、およびkotlinのprocessResourcesをどのように扱うかを知らない。そして、それがspring boot gradle pluginで動作するようにサポートされているかどうか?ありがとう。gradle script kotlinとspring boot gradleプラグインを使用して実行可能なjarファイルを構築する方法

更新することを教えてください、私はgithubのとstackoverflowのリソースを参照し、それは次のように動作し、任意の問題だ
apply plugin: 'java' 
apply plugin: 'eclipse' 


buildscript { 
    repositories { 
     maven { url 'https://repo.spring.io/libs-milestone' } 
    } 

    dependencies { 
     classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE' 
    } 
} 

apply plugin: 'org.springframework.boot' 

sourceCompatibility = 1.6 
targetCompatibility = 1.6 
version = "1.0.0" 

tasks.withType(JavaCompile) { 
    options.bootClasspath = "$JDK6_HOME/jre/lib/rt.jar" 
} 

if (project.hasProperty('env')) { 
    println "Target environment: $env" 
    sourceSets.main.resources.srcDir "src/main/profile/$env" 
} 

processResources{ 
    exclude 'TagNames.properties' 
} 

repositories { 
    jcenter() 
    maven { url "http://clojars.org/repo" } 
} 

dependencies { 
    compile files('lib/jlibs-core.jar') 
    compile files('lib/jlibs-xml.jar') 
    compile files('lib/autonomyPiB.jar') 
} 

bootRepackage { 
    mainClass = 'com.test.TestA' 
} 

答えて

1

import org.springframework.boot.gradle.plugin.SpringBootPlugin 
import org.springframework.boot.gradle.SpringBootPluginExtension 

buildscript { 
    dependencies { 
     classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.6.RELEASE") 
    } 

    repositories { 
     jcenter() 
    } 
} 

plugins { 
    java 
    eclipse 
    id("org.springframework.boot") version "1.5.6.RELEASE" 
} 

repositories { 
    maven { 
     url=uri("http://clojars.org/repo") 
    } 
} 

dependencies { 
    compile ("commons-net:commons-net:2.0") 
    compile ("log4j:log4j:1.2.17") 
    compile ("javax.servlet:servlet-api:2.4") 
} 

configure<JavaPluginConvention> { 
    setSourceCompatibility(1.7) 
    setTargetCompatibility(1.7) 
    if(project.hasProperty("env")){ 
     var env = project.property("env"); 
     sourceSets.getByName("main").resources.srcDirs("src/main/profile/" + env) 
    } 
} 

configure<ProcessResources>("processResources") { 
    if(project.hasProperty("env")){ 
     exclude("src/main/profile/scripts") 
    } 
} 

//apply<SpringBootPlugin>() 
configure<SpringBootPluginExtension> { 
    mainClass = "sample.HelloWolrd" 
} 

inline fun <reified C> Project.configure(name: String, configuration: C.() -> Unit) { 
(this.tasks.getByName(name) as C).configuration() 
} 

作業する別の方法:

import org.springframework.boot.gradle.SpringBootPluginExtension 

configure<ProcessResources>("processResources") { 
    if(project.hasProperty("env")){ 
     exclude("src/main/profile/scripts") 
    } 
} 

springBoot { 
    mainClass = "Application" 
} 

inline fun <reified C> Project.configure(name: String, configuration: C.() -> Unit) { 
    (this.tasks.getByName(name) as C).configuration() 
} 

/** 
* Retrieves or configures the [springBoot] [org.springframework.boot.gradle.SpringBootPluginExtension] project extension. 
*/ 
fun Project.springBoot(configure: org.springframework.boot.gradle.SpringBootPluginExtension.() -> Unit = {}) = 
extensions.getByName<org.springframework.boot.gradle.SpringBootPluginExtension>("springBoot").apply { configure() } 
関連する問題