2012-03-26 14 views
3

ソースなしで新しいGradleプロジェクトを作成したいと思います。いくつかの設定ファイルを置いて、ビルド時にzipファイルを生成したいと思います。 mavenでは、アセンブリプラグインを使用します。私はGradleでこれを行うための最も簡単で軽い方法を探しています。もし私がここにソースを持っていなくても、javaプラグインを適用する必要があるのか​​どうかは不思議です。なぜなら、clean、assembleなどの基本的で便利なタスクを提供しているからです。 zipを生成することはかなり簡単です。私はそれを行う方法を知っていますが、私はどこで、どのようにしてzip生成をgradleの世界に入れるのかはわかりません。コンフィグレーションとソースなしのグラデーションプロジェクト

答えて

3

これまで手動で行っていました。言い換えれば、私がしたいのは、何らかのディストリビューションを作成して、アセンブルやクリーンのような基本的なライフサイクルタスクが必要なプロジェクトのために、必要な依存関係とともにこれらのタスクを作成しただけです。

しかし、この機能のために法案にうまく収まるように見える「ベースプラグイン」(ユーザーガイドの「標準グラッドプラグイン」の「ベースプラグイン」に記載されています)があります。ただし、このガイドと他のベースプラグインはまだGradle APIの一部とはみなされておらず、実際には文書化されていないことに注意してください。

結果はあなたとほとんど同じですが、唯一の違いは常に最新のままである混乱するJava固有のタスクがないことです。

apply plugin: 'base' 

task dist(type: Zip) { 
    from('solr') 
    into('solr') 
} 

assemble.dependsOn(dist) 

サンプル実行:あなたの貢献のための

$ gradle clean assemble 
:clean 
:dist 
:assemble 

BUILD SUCCESSFUL 

Total time: 2.562 secs 
+0

いいです!私はちょうどGradleの初心者であり、ベースプラグインがあるかどうかはわかりませんでした。どうもありがとう! – javanna

1

私が理解する限り、それは奇妙に聞こえるかもしれませんが、私はzipファイルを作成するためにjavaプラグインを適用する必要があるように見えます。さらに、例えばcleanのようないくつかの一般的なタスクを利用できると便利です。以下は、私のbuild.gradleです:

apply plugin: 'java' 

task('dist', type: Zip) { 
    from('solr') 
    into('solr') 
} 

assemble.dependsOn dist 

私はJavaプラグインを適用し、私のプロジェクト内でのSolrのディレクトリの内容とSolrのディレクトリを含むzipファイルを作成し、私のdistタスクを定義しました。最後の行は、普通のgradle buildまたはgradle assembleを実行したときにタスクを実行すると便利です。私はdistタスクを明示的に呼び出さないためです。 このように、複数のプロジェクトで作業する場合、コンフィグレーションzipを含むすべての成果物を生成するために親にgradle buildを実行するだけで済みます。

解決策があり、あなた自身の回答を追加してください。

1

groovyプラグインを使用し、antを使用するだけです。私はこのようなことをしました。私はまた、javannaの答えが好きです。

task jars(dependsOn: ['dev_jars']) << { 
    def fromDir = file('/database-files/non_dev').listFiles().sort() 

    File dist = new File("${project.buildDir}/dist") 
    dist.mkdir() 

    fromDir.each { File dir -> 
    File destFile = new File("${dist.absolutePath}" + "/" + "database-connection-" +  dir.name + ".jar") 
    println destFile.getAbsolutePath() 
    ant.jar(destfile:destFile, update:false, baseDir:dir) 
    } 
} 
+0

ありがとう! +1!自分の答えが好きなら、それをアップヴォーグすることができます! :)私は私の方が好きです。なぜなら、それは短くて、私がGradleを使っているなら、Antを使わないほうがいいかもしれませんが、多分私です。 – javanna

関連する問題