java - 从工具 API 开始调试自定义 Gradle 插件
问题描述
我正在实现一个自定义插件,我想通过 Gradle 工具 API 运行它。我们可以将此项目作为我的问题的确切基线。
我本质上希望能够在插件代码中放置一个断点(在这种情况下,https://github.com/melix/gradle-tapi-demo-artifacts/blob/master/plugin/src/main/java/ org/gradle/demo/plugin/OutgoingArtifactsModelBuilder.java。)
实际的 Gradle 插件是从位于另一个 Gradle 模块中的 Java 文件调用的。在这种情况下App.java。
public class App {
public static void main(String... args) throws Exception {
GradleConnector connector = GradleConnector.newConnector();
connector.forProjectDirectory(findProjectPath(args));
ProjectConnection connection = null;
try {
connection = connector.connect();
ModelBuilder<OutgoingArtifactsModel> customModelBuilder = connection.model(OutgoingArtifactsModel.class);
customModelBuilder.withArguments("--init-script", copyInitScript().getAbsolutePath());
OutgoingArtifactsModel model = customModelBuilder.get();
for (File artifact : model.getArtifacts()) {
System.out.println("artifact = " + artifact);
}
} finally {
if (connection != null) {
connection.close();
}
}
}
我找不到运行该 Java 文件并在插件中命中断点的方法。我知道我应该以某种方式针对创建的 Gradle 守护进程启动远程调试会话,但到目前为止还没有运气。
-Dorg.gradle.debug=true
直接运行 Java 文件时不支持。我还尝试在我的内部设置这些标志,~/.gradle/gradle.properties
但也没有成功(然后 gradle 守护进程拒绝运行)。
该项目是一个复合构建,我不确定这是否相关。
显然,对我来说,这里有太多动人的部分,如果有人有一些指示那就太好了!
解决方案
推荐阅读
- angular - 路由错误 - 类型“字符串”不可分配给类型“类型”
' - python - 连接两个 2D 张量
- python-3.x - 无法成功运行“func host start”来测试 azure 函数
- shell - 监视日志文件中的字符串,然后从同一行创建变量以处理所述文件
- google-cloud-run - GCP 托管的 Cloud Run 的出站 IP 范围是多少?
- java - 错误:尝试在空对象引用上调用虚拟方法...
- .net - 获取在自定义用户控件中声明的事件的所有事件处理程序
- php - Laravel Dusk - 无法在 GitLab CI 上运行
- sql - SQL 在 MS SQL Server Management Studio 中删除没有修剪功能的查询中的空格
- reactjs - 从 API 响应向组件发送数组