当前位置: 首页 > 知识库问答 >
问题:

Gradle工具API-查找GradleProject的所有任务

戚俊美
2023-03-14

我完全被困在这里了。我正在编写一个java类,它应该操作梯度构建。

我已经成功地实例化了gradle tooling API(连接器、GradleProject),但这两个API都不能让我获得BuildLauncher可用的所有任务的简单列表(提示:有些任务可能在插件中)。但是,我已经设法运行了“:tasks”任务,然后解析它的输出,但听起来很糟糕。

我是否遗漏了一些重要的东西,或者只是工具API从来没有提供对gradle API的访问?

共有1个答案

伏德义
2023-03-14

看来下面这段代码可能会对您有所帮助:

GradleConnector connector = GradleConnector.newConnector();
connector.forProjectDirectory(new File(".")); // project dir

ProjectConnection connection = connector.connect();
try {
   // Load the model for the project
   GradleProject project = connection.getModel(GradleProject.class);
   System.out.println("Project: " + project.getName());
   System.out.println("Tasks:");
   for (Task task : project.getTasks()) {
       System.out.println("    " + task.getName());
    }
 } finally {
    // Clean up
    connection.close();
 }

基本上,您需要获得模型。还请查看$gradle_home/sample/toolingapi下的示例。

 类似资料:
  • 问题内容: 考虑这样的一张桌子 问题是,如果我给定值2和5,我应该得到102和105,而102和105都同时具有值​​2和5,或者如果我给定值1和3,我应该得到100和104。 我如何仅用一个sql命令就能做到这一点?我需要一个尽可能轻的查询。 并使用UNION,INTERSECTION或NESTED SQL,哪个更快,更慢,更重? 在此先感谢Ergec 问题答案: 有很多解决方案。除了Jhonn

  • 我刚把Android Studio更新到4.2版本。我很惊讶在我的项目中没有看到Gradle任务。 在以前的版本4.1.3中,我可以看到如下所示的任务: 但现在我只看到4.2版本中的依赖关系: 我试图清除Android Studio的缓存并再次同步我的项目,但没有任何变化。 这是特性改变吗?

  • 编辑: 这就是我得到的:

  • 我想使用Hibernate和Gradle从现有数据库生成POJO。Gradle可以轻松调用Ant任务,Hibernate为逆向工程数据库提供了Ant任务。 我在网上找到了这个旧的Gradle任务定义,并将其修改为最新版本的Gradle,但它不起作用: 我得到了一个错误: 我如何修改它以从数据库生成模式文件?(我知道这还不会生成POJO,但这是第一步!) 我的依赖项看起来像:

  • 我想写一个Gradle任务,在我所有的子项目中共享。此任务在调用它的子项目中查找所有其他类型为“GenerateMavenPom”的任务,并执行这些任务。 通过这样做,我的子项目可以定义他们想要的任何Maven发布,我可以使用“gradle GenerateMavenPomFiles”等单个任务执行gradle来创建pom.xml,而不需要知道每个子项目中的单个发布类型。为什么?因为Maven插件

  • 问题内容: 我有这个桌子; 我希望选择这样的行: 任一或= 。 另一个字段应该是唯一的。 即我想从表中选择唯一,或者我需要以下结果: 怎么做? 为什么?因为我希望构建一个类似于Facebook的收件箱,在该收件箱中,已发送和已接收的消息将被聚合,而此查询是迄今为止的瓶颈。 我正在使用Rails 3.2和Postgres 9.3。 问题答案: (not )从结果中删除重复项,从而不必要。您可能希望在