2番目のmainClassのstartScriptsを作成するためにGradle "application"プラグインを使用したいと思います。これは可能ですか?アプリケーションプラグインにこの機能が組み込まれていなくても、startScriptsタスクを利用して別のmainClass用のスクリプトを作成することは可能ですか?gradle 'application'プラグインを使用して複数のメインクラスを指定することは可能ですか
答えて
タイプCreateStartScripts
の複数のタスクを作成することができ、それぞれのタスクで別のmainClassName
を構成することができます。便宜上、これをループで行うことができます。
既存のコードはありますか?ドキュメンテーションは、同時に私たちがgroovyとgradleを学ぶ人たちのために、これを「ループで」行う方法を説明する良い仕事を単純にしません。 – Core
ルートbuild.gradleにこのようなものを追加します。次のように
// Creates scripts for entry points
// Subproject must apply application plugin to be able to call this method.
def createScript(project, mainClass, name) {
project.tasks.create(name: name, type: CreateStartScripts) {
outputDir = new File(project.buildDir, 'scripts')
mainClassName = mainClass
applicationName = name
classpath = project.tasks[JavaPlugin.JAR_TASK_NAME].outputs.files + project.configurations.runtime
}
project.tasks[name].dependsOn(project.jar)
project.applicationDistribution.with {
into("bin") {
from(project.tasks[name])
fileMode = 0755
}
}
}
次にルートまたはサブプロジェクトのいずれかからそれを呼び出す:
// The next two lines disable the tasks for the primary main which by default
// generates a script with a name matching the project name.
// You can leave them enabled but if so you'll need to define mainClassName
// And you'll be creating your application scripts two different ways which
// could lead to confusion
startScripts.enabled = false
run.enabled = false
// Call this for each Main class you want to expose with an app script
createScript(project, 'com.foo.MyDriver', 'driver')
プログラムのコマンドライン引数を設定する起動スクリプトを作成できますか? –
私はこれらの答えの両方の部品を組み合わせました比較的簡単な解決法に到達する:
task otherStartScripts(type: CreateStartScripts) {
description "Creates OS specific scripts to call the 'other' entry point"
classpath = startScripts.classpath
outputDir = startScripts.outputDir
mainClassName = 'some.package.app.Other'
applicationName = 'other'
}
distZip {
baseName = archivesBaseName
classifier = 'app'
//include our extra start script
//this is a bit weird, I'm open to suggestions on how to do this better
into("${baseName}-${version}-${classifier}/bin") {
from otherStartScripts
fileMode = 0755
}
}
startScriptsは、アプリケーションationプラグインが適用されます。
applicationDistribution.from(otherStartScripts){into 'bin'}について – Joel
- 1. Android Gradleプラグインでアプリのリリースバージョンをテストすることは可能ですか?
- 2. CSSのパーセントを使用してページの特定の部分を指定することは可能ですか?
- 3. NSAttributedStringを使用して複数のフォント属性を設定することは可能ですか
- 4. iOS用のQCAR SDKを使用してフロントカメラを指定することは可能ですか?
- 5. CSSを使用してスパンをツールチップとしてスタイル指定することは可能です
- 6. 2レベル以上のgradleプロジェクトを設定することは可能ですか?
- 7. Solrを使用して複数のルーゼンインデックスと非ルーキーインデックスを照会することは可能ですか?
- 8. log4cxx - 設定ファイルのカスタム引数を使用してカスタムアペンダーを設定することは可能ですか?
- 9. maprouteを使用してasp.net mvcで複数のパラメータをルーティングすることは可能ですか?
- 10. 複数のWAMPスタックをインストールして使用することが可能
- 11. MATLABで行列の指数関数をとることは可能ですか?
- 12. nhibernateでsqliteマニフェストの型指定機能を使用することは可能ですか?
- 13. presentMoviePlayerViewControllerAnimatedを使用して複数のクリップを再生することは可能ですか?
- 14. オブジェクト指向プログラミングにCUDA Cを使用することは可能ですか?
- 15. pythonの型ライブラリを使用して複数の可能な型を指定する
- 16. 依存関係を使用できるクラス/モジュールを指定することは可能ですか?
- 17. Gradle ApplicationプラグインのMaven代替(同等)
- 18. Nhibernateを複数のテーブルにわたってオブジェクトのパーティションで使用することは可能ですか?
- 19. JVM(またはIDE)が使用するネットワークインターフェイスを指定することは可能ですか
- 20. 複数のランチャーアクティビティを持つことは可能ですか?
- 21. 複数のJOptionPaneダイアログを持つことは可能ですか?
- 22. iPhoto '11プラグインを開発することは可能ですか?
- 23. トーストの位置を指定することは可能ですか?
- 24. XSDのXpathにORを指定することは可能ですか?
- 25. Hudson-CIで複数の可能な結果を指定する方法は?
- 26. デバイスのサポートライブラリを使用してアンドロイド3.1で複数の画面サイズをサポートすることが可能です
- 27. Sitemeshで複数回飾ることは可能ですか?
- 28. 可能であれば、Bean構成を使用して別のクラスのメインクラスに関数を追加する
- 29. PHPを使用してスケジュールジョブを指定することはできますか?
- 30. レコードをレコード要素として使用することは可能ですか?
この回答を見る:http://stackoverflow.com/questions/21241767/multiple-startscript-using-gradle-for-heroku – Phil