Groovy Gradle应用程序插件:需要在发行版中包含src

Groovy Gradle应用程序插件:需要在发行版中包含src,groovy,gradle,Groovy,Gradle,我正在使用Gradle的应用程序插件为我的应用程序打包一个运行时,其中包括启动所需的库和shell脚本。以下各项都可以正常工作: apply plugin: 'groovy' apply plugin: 'application' applicationName = "appName" mainClassName = 'com.myApp.cli.ScriptRunner' buildDir = "${System.properties['user.home']}/.myApp/build"

我正在使用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
}
我发现我可以使用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被调用,我甚至不确定这是否可能。欢迎您提出建议。

我想出来了。我可以从applicationDistribution调用copySrc

task copySrc(type:Copy) {
  from('src/groovy/com/myApp/receiver') {
    include '**/*.groovy'
  }
  into "$buildDir/src"
}

applicationDistribution.from(copySrc) {
  into "src"
}

我想出来了。我可以从applicationDistribution调用copySrc

task copySrc(type:Copy) {
  from('src/groovy/com/myApp/receiver') {
    include '**/*.groovy'
  }
  into "$buildDir/src"
}

applicationDistribution.from(copySrc) {
  into "src"
}
这要简单一点:

applicationDistribution.from("${rootProject.projectDir}/") {
    include "README.md", "LICENSE.md"
}
这要简单一点:

applicationDistribution.from("${rootProject.projectDir}/") {
    include "README.md", "LICENSE.md"
}

是否在任何地方进行了记录?是否在任何地方进行了记录?