0

私はgradleツールを使用してprojectConnectionおり、Javaからgradleに接続できます。そして、を使用するModelBuilderことで、Java クラスでもプロジェクト オブジェクトを取得できます。

ModelBuilder gradleBuilder = connection.model(GradleProject.class); 

ただし、このprojectオブジェクトはタスクのみにアクセスできます。(すなわち)project.getTasks()利用可能です。しかし、そうではありませんproject.getExtensions()。これらの拡張機能にアクセスするには?? Java からgradle にアクセスする他の方法はありExtensionsますか?

応答後に編集します。

gradle タスクを実行すると、指定されたファイルのクロージャーが読み取られ、静的 Java クラス ( deployGradleReaderExtension.java) で読み取られた値が更新されます。今、拡張機能から値を読み取ろうとしています

deployGradleReaderExtension ext = (deployGradleReaderExtension) buildResult.getGradle().getRootProject().getExtensions().getByName("serviceConf");

今、キャスト例外が発生しています。gradle と Java は diff を使用しているためClassLoadersです。

これを克服する方法はありますか?

4

1 に答える 1

0

たとえば、Java で記述されたプラグインから拡張機能にアクセスすることは可能ですが、ツール API からはアクセスできません。強力な上位互換性と下位互換性を実現するために、ツール API は、IDE などのインテグレーターのニーズを満たすように設計された、Gradle オブジェクト モデルの簡略化されたビューのみを提供します。

于 2012-10-13T10:57:39.273 に答える