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. Gradle 'application'プラグイン - どのmainClassNameを使用するかを指定できますか?
- 2. Android Gradleプラグインでアプリのリリースバージョンをテストすることは可能ですか?
- 3. CSSのパーセントを使用してページの特定の部分を指定することは可能ですか?
- 4. NSAttributedStringを使用して複数のフォント属性を設定することは可能ですか
- 5. iOS用のQCAR SDKを使用してフロントカメラを指定することは可能ですか?
- 6. 複数のエンドポイントでadmin-on-restを指すことは可能ですか?
- 7. Python - PIP:アーキテクチャを指定することは可能ですか?
- 8. CSSを使用してスパンをツールチップとしてスタイル指定することは可能です
- 9. gradle script kotlinとspring boot gradleプラグインを使用して実行可能なjarファイルを構築する方法
- 10. typescriptを使用してanglejs 1.5(6)のバインディング値のタイプを指定することは可能ですか?
- 11. Kotlinインターフェースで静的関数を指定することは可能ですか?
- 12. Google Places API:フィルタを使用して施設を指定することは可能ですか
- 13. 複数のアンドロイドデバイスをUSBなしで(Wi-Fiを使用して)接続することは可能ですか?
- 14. 2レベル以上のgradleプロジェクトを設定することは可能ですか?
- 15. Solrを使用して複数のルーゼンインデックスと非ルーキーインデックスを照会することは可能ですか?
- 16. レールで1つのモデルを使用して複数のテーブルを管理することは可能ですか?
- 17. javamailを使用して複数の送信者からメールを送信することは可能ですか
- 18. nhibernateでsqliteマニフェストの型指定機能を使用することは可能ですか?
- 19. log4cxx - 設定ファイルのカスタム引数を使用してカスタムアペンダーを設定することは可能ですか?
- 20. tf.while_loopで複数の条件を定義することは可能ですか
- 21. nebula.os-packageプラグインを使用して、パッケージアーキテクチャを指定する方法
- 22. maprouteを使用してasp.net mvcで複数のパラメータをルーティングすることは可能ですか?
- 23. MATLABで行列の指数関数をとることは可能ですか?
- 24. システムプロパティを使用してehcacheでクラスタURLを指定することは可能です3
- 25. シェフのms_dotnet cookbookを使用して、複数バージョンのdotnetフレームワークをインストールすることは可能ですか?
- 26. 複数のWAMPスタックをインストールして使用することが可能
- 27. Objective-C(Xcode/iOS)のメインクラスを継承することは可能ですか?
- 28. DialogFlowを使用して複数のメッセージをGoogle Homeに送信することは可能ですか?
- 29. Azure Identityを使用して複数のオーディエンスクレームJWTトークンを生成することは可能ですか?
- 30. iText7を使用して複数のpdfsをマージすることは可能ですか?
この回答を見る:http://stackoverflow.com/questions/21241767/multiple-startscript-using-gradle-for-heroku – Phil