6

次のパターンで 4 つの jar のグループを作成しようとしています (各 jar には独自のプロジェクト helpRootDirがあります。4 つの jar すべてで共有されます。4 つすべてを実行する 1 つのタスクを作成する方法を誰かが知っていれば、それは素晴らしいことです)。 )

def helpRootDir = 'runtime/datafiles/help/'
project(':schedwinclihelp') {
    def helpDir = 'schedwincli'

    //Include no classes.  This is strictly a resource jar
    sourceSets.main.java {
        exclude 'com/**'
    }

    jar {
        from '${helpRootDir}/${helpDir}'
        include '**/*.*'
    }

}

とにかく、上記からわかるように、jar にクラスを入れたくないので、うまくいきました。残念ながら、実際に jar に入れているのは MANIFEST.MF ファイルだけです。jar 定義のファイルはどれも追加されていません。完全なファイル ツリーを${helpRootDir}/${helpDir}jar のルートに追加します。どうすればこれを達成できますか?

4

2 に答える 2

1

変数を間違って参照していたことがわかりました。

正しい構文は次のとおりです。

def helpRootDir = 'runtime/datafiles/help/'
project(':schedwinclihelp') {
    def helpDir = 'schedwincli'

    //Include no classes.  This is strictly a resource jar
    sourceSets.main {
        java {
            exclude 'com/**'
        }
        resources {
            srcDir  helpRootDir + '/' + helpDir
        }
    }
}

srcDir helpRootDir + '/' + helpDirではなく注意してください'${helpRootDir}/${helpDir}'。また、ヘルプ ディレクトリをリソース ディレクトリにして、Java プラグインに自動的に実行させました。

于 2013-10-29T15:37:56.600 に答える
1

次のタスクは、主要なリソース ファイルのみを含む名前の JAR ファイルを作成しますresources.jar(これらはsrc/main/resouresディレクトリの下に置かれます)。

コトリン DSL:

tasks {
    task<Jar>("resourcesJar") {
        from(sourceSets["main"].resources)
        archiveFileName.set("resources.jar")
    }
}

グルーヴィーなDSL:

tasks.create("resourcesJar", Jar.class) {
    from sourceSets.main.resources
    archiveFileName = "resources.jar"
}
于 2021-07-28T12:52:06.863 に答える