0

Gradle のアプリケーション プラグインを使用して、起動に必要なライブラリとシェル スクリプトを含むアプリケーションのランタイムをバンドルしています。これはすべて、次の場合に正常に機能します。

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 が呼び出されるのを見たことがなく、それが可能かどうかさえわかりません。提案は大歓迎です。

4

2 に答える 2

2

私はそれを考え出した。applicationDistribution から copySrc を呼び出すだけです。

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

applicationDistribution.from(copySrc) {
  into "src"
}
于 2013-08-28T18:16:02.703 に答える
1

これは少し簡単です:

applicationDistribution.from("${rootProject.projectDir}/") {
    include "README.md", "LICENSE.md"
}
于 2013-12-03T21:25:29.977 に答える