2016-11-22 86 views
0

都提供在samples/toolingApi/customModelFeature Spotlight Gradle Tooling API自定义模型的示例使用插件来注册模型。但是,为了应用该插件,需要更改build.gradle或使用初始化脚本,该脚本由GradleConnector(还)支持。Tooling API自定义模型的外部注册

如何在Tooling API本身中注册自定义模型,以便我的应用程序可以以自定义格式检索项目信息,而无需更改其build.gradle文件?如何在应用程序代码中获得对ToolingModelBuilderRegistry实现的引用?

回答

2

支持初始化脚本,它们只是一个参数。

projectConnection.models(ModelType).withArguments('--init-script', pathToInitScript).get() 
+0

谢谢,但我无法理解这条线。 'connection'是'ProjectConnection'的一个实例吗?然后在Java中,我必须在注册模型之前使用'connection.getModel(CustomModel.class)'开始。 'withArguments()'属于哪里? – Viktor

+0

似乎你指的是'BuildLauncher'的'withArguments()'。这可以工作,但然后我必须解析新插件的输出才能检索模型。我仍然希望在注册工具API中的'CustomModel.class'后使用'CustomModel myModel = connection.getModel(CustomModel.class)'之类的东西' – Viktor

+0

你不注册'CustomModel',你在初始化脚本中注册'CustomModelImpl' 。 我指的是'ModelBuilder#withArguments()'。您会看到是否将上面的代码片段粘贴到您的代码中。 –