0
PluginRegistry
があります。そのプラグインをキーで検索します。つまり、ファイル名で直接読み込みます。しかし、どのように適用されたGradleプラグインキーを取得できますか?適用されたGradleプラグインキーの取得
.jarファイルをトラバースするよりも簡単な解決策を提案してください。
PluginRegistry
があります。そのプラグインをキーで検索します。つまり、ファイル名で直接読み込みます。しかし、どのように適用されたGradleプラグインキーを取得できますか?適用されたGradleプラグインキーの取得
.jarファイルをトラバースするよりも簡単な解決策を提案してください。
悲しいことに、この情報はGradleによって保持されません。これを確認するためにいくつかのアイテムをダンプすることができます。project.plugins
、project.pluginManager
、gradle.plugins
、gradle.pluginManager
id
は保存されませんが、クラスによってインストールされたプラグインは引き続き判別できます。私たちが実行したときに
apply plugin: "groovy"
group = 'com.jbirdvegas.q41287036'
version = '0.1'
repositories {
jcenter()
}
println "Plugins: ${project.plugins.size()}"
project.plugins.each {
println it.getClass().getCanonicalName()
}
println "\nproject.plugins dump: \n${project.plugins.dump()}"
println "\nproject.pluginManager dump: \n${project.pluginManager.dump()}"
task nothing {}
println "\n\ngradle.plugins dump: \n${gradle.plugins.dump()}"
println "\n\ngradle.pluginManager dump: \n${gradle.pluginManager.dump()}"
その後、我々は、各適用のプラグインがid
が保存されていないため、クラスを見ることができます。
$ ./gradlew -b build_simple.gradle -q nothing
Plugins: 12
com.gradle.scan.plugin.BuildScanPlugin
org.gradle.api.plugins.HelpTasksPlugin
org.gradle.language.base.plugins.LifecycleBasePlugin
org.gradle.api.plugins.BasePlugin
org.gradle.api.plugins.ReportingBasePlugin
org.gradle.platform.base.plugins.ComponentBasePlugin
org.gradle.language.base.plugins.LanguageBasePlugin
org.gradle.platform.base.plugins.BinaryBasePlugin
org.gradle.api.plugins.JavaBasePlugin
org.gradle.api.plugins.GroovyBasePlugin
org.gradle.api.plugins.JavaPlugin
org.gradle.api.plugins.GroovyPlugin
project.plugins dump:
<org.gradle.api.internal.plugins.Defaul[email protected] plugi[email protected]78154b46 pluginManager[email protected]1eb1cc4a type=interface org.gradle.api.Plugin eventRegis[email protected]7530d0a2 store=[[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]] mutateActions=[]>
project.pluginManager dump:
<[email protected]eb1cc4a __dyn_obj__=null [email protected][class org.gradle.api.internal.plugins.DefaultPluginManager_Decorated] insta[email protected]3d4ec275 appli[email protected]4f48cb44 plugi[email protected]78154b46 pluginContainer=[[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]] plugins=[class org.gradle.platform.base.plugins.ComponentBasePlugin:org.gradle.api.internal.[email protected]557e4a5, class org.gradle.platform.base.plugins.BinaryBasePlugin:org.gradle.api.internal.[email protected]57cf4be7, class com.gradle.scan.plugin.BuildScanPlugin:org.gradle.api.internal.[email protected]1cd97601, class org.gradle.language.base.plugins.LifecycleBasePlugin:org.gradle.api.internal.[email protected]15c28c35, class org.gradle.api.plugins.JavaBasePlugin:org.gradle.api.internal.[email protected]2f8a30e4, class org.gradle.language.base.plugins.LanguageBasePlugin:org.gradle.api.internal.[email protected]237d681, class org.gradle.api.plugins.HelpTasksPlugin:org.gradle.api.internal.[email protected]5589c1b8, class org.gradle.api.plugins.GroovyBasePlugin:org.gradle.api.internal.[email protected]542b5c18, class org.gradle.api.plugins.BasePlugin:org.gradle.api.internal.[email protected]2a585b69, class org.gradle.api.plugins.ReportingBasePlugin:org.gradle.api.internal.[email protected]1667137d, class org.gradle.api.plugins.JavaPlugin:org.gradle.api.internal.[email protected]d789408, class org.gradle.api.plugins.GroovyPlugin:org.gradle.api.internal.[email protected]33dd223] instances=[class org.gradle.platform.base.plugins.ComponentBasePlugin:[email protected], class org.gradle.platform.base.plugins.BinaryBasePlugin:[email protected]4aad9daf, class com.gradle.scan.plugin.BuildScanPlugin:[email protected], class org.gradle.language.base.plugins.LifecycleBasePlugin:[email protected], class org.gradle.api.plugins.JavaBasePlugin:[email protected], class org.gradle.language.base.plugins.LanguageBasePlugin:[email protected], class org.gradle.api.plugins.HelpTasksPlugin:[email protected], class org.gradle.api.plugins.GroovyBasePlugin:[email protected], class org.gradle.api.plugins.BasePlugin:[email protected], class org.gradle.api.plugins.ReportingBasePlugin:[email protected], class org.gradle.api.plugins.JavaPlugin:[email protected], class org.gradle.api.plugins.GroovyPlugin:[email protected]] idMappings=[:]>
gradle.plugins dump:
<[email protected] plugi[email protected]38ca4273 pluginManager[email protected]5fef5ff0 type=interface org.gradle.api.Plugin eventRegis[email protected]79b9180f store=[] mutateActions=[]>
gradle.pluginManager dump:
<[email protected]fef5ff0 __dyn_obj__=null [email protected][class org.gradle.api.internal.plugins.DefaultPluginManager_Decorated] insta[email protected]53c09a79 applicator[email protected]76f54f2e plugi[email protected]38ca4273 pluginContainer=[] plugins=[:] instances=[:] idMappings=[:]>
ビルド中にプラグインの 'id'を見つける方法を知りたいのですか? 'プラグインのように適用する: 'ああ、あなたはああ知りたいですか? – JBirdVegas
はい、それを取得するメカニズムはありますか? – ntviet18