我正在使用Gradle的应用程序插件捆绑我的应用程序的运行时,其中包括要启动的必需库和shell脚本。这一切都运行良好,具体如下:
apply plugin: 'groovy'
apply plugin: 'application'
applicationName = "appName"
mainClassName = 'com.myApp.cli.ScriptRunner'
buildDir = "${System.properties['user.home']}/.myApp/build"
archivesBaseName = 'myApp'
version = "1.0"
group = 'myApp'
sourceSets {
main {
groovy {
srcDir 'src/groovy'
exclude '**/web/**'
}
java {
srcDir 'src/java'
}
}
}
startScripts {
classpath = files('$APP_HOME/lib/*')
}
repositories {
mavenCentral()
}
dependencies {
// dependencies omitted for brevity
}
我发现from here我可以使用applicationDistribution包含其他文件。我遇到的问题是如何告诉它我需要哪些文件。我尝试了以下认为这是正确的方法:
task copySrc(type:Copy) {
from('src/groovy/com/myApp/receiver') {
include '**/*.groovy'
}
into "$buildDir/src"
}
task createSrc {
def src = file("$buildDir/src")
outputs.dir src
doLast {
src.mkdirs()
copySrc
}
}
applicationDistribution.from(createSrc) {
into "src"
}
但是,我没有看到copySrc被调用,我甚至不确定这是否可行。欢迎提出建议。
答案 0 :(得分:2)
我明白了。我可以从applicationDistribution调用copySrc。
task copySrc(type:Copy) {
from('src/groovy/com/myApp/receiver') {
include '**/*.groovy'
}
into "$buildDir/src"
}
applicationDistribution.from(copySrc) {
into "src"
}
答案 1 :(得分:1)
这有点容易:
applicationDistribution.from("${rootProject.projectDir}/") {
include "README.md", "LICENSE.md"
}