2016-03-31 8 views
0

私は、空であるか、または様々な名前のjarファイルを持つjarファイルのディレクトリを持っています。私はそれらを解凍して、私の太った瓶に入れたいと思います。私はzipTree( 'path')からの使用を見てきましたが、これは特定のjar/zipファイル名でしか動作しないようです。jarファイルの内容を直接的に追加するためのGradle jarタスク

ここは私の現在のgradleタスクです。

task buildSweetJar(dependsOn: classes, type: Jar) { 
    baseName 'MySweetJar' 
    from ([sourceSets.main.output, configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } ]) 
    from zipTree ('tmp_plug/*.jar') -- this doesn't work 
    manifest { 
     attributes (
       'Main-Class': 'my.app.SysInit', 
       'Class-Path': configurations.compile.collect { it.getName() }.join(' ') 
     ) 
    } 
    exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' 
} 
  1. 私はjarファイルのディレクトリ全体が が自分の名前を知らなくても、解凍/含めたいです。これは可能ですか?
  2. jarファイルの内容も、このjarのクラスパス上に置いてください。これはどのように可能ですか?

更新:

私は、ディレクトリ内の各jarファイルを歩くことができるようにFileTreeを学ぶことができました。しかし、これをクラスパスにどのように追加するのかは分かりません。

FileTree pluginFileTree = fileTree(dir: 'tmp_plug/') 
from ([sourceSets.main.output, configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } ]) 
pluginFileTree.each { 
    File pluginJarFile -> 
     from zipTree (pluginJarFile) 
} 
+0

あなたのコードを実行するのに必要なすべての瓶が入ったジャンパーだけではありません - あなたはこれを認識していると思いますか? – robjwilkins

+0

実際、いいえ、私は気づいていませんでした。私は私の用語が正しいとは思わない。 –

+0

fat Jarは実行可能なjarの別の名前で、コマンドラインから単独で実行できます。例えば"java -jar your_jar_file.jar"これはあなたがやりたいこと、あるいは何か他のものを達成しようとしていますか? – robjwilkins

答えて

0

実行可能なjarファイルを作成するには、springbootなどのフレームワークを使用することをお勧めします。ボイラープレートのグラデーションコードを手作業でクランクする必要がなくなります。 https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-gradle-plugin.html

あなたの依存関係をどのように管理しているのか分かりませんが、あなたのファイルシステムにそれらを保存するのは良い方法ではありません。 Maven Centralなどのリポジトリからそれらを解決する必要があります。あなたがこれをしているのかどうかはわかりませんが、あなたはそうではないとの質問があります。

関連する問題