有没有一种方法可以将分级任务应用于依赖项



我写了一个相当简单的渐变任务,称为"instrument"。它现在所做的就是在java项目的src文件夹中移动,并对它找到的每个.java文件调用instrumenter,它将该文件的修改版本复制到构建文件夹中的某个位置。稍后,我想使用这些文件来编译项目,而不是原始文件,但首先我还需要检测项目依赖性,因为这是一个模块化项目。

有没有一种简单的方法可以实现这一点,而无需将任务硬编码到每个依赖项中?因为以后这需要适用于各种各样的项目结构。现在,依赖项在我的主要项目模块的build.gradle文件中声明,如下所示:

dependencies {
implementation project(':common')
}

此外,如果有人能为我指明正确的方向,在构建文件夹中使用插入指令的.java文件编译src文件夹,而不是原始的src文件夹,我将不胜感激。

我最初尝试使用javac手动编译整个项目,但结果发现这比必要的要复杂得多。

不确定您期望的是什么,但是:

  • 您可以为此编写自己的gradle插件
  • 或者你可以把这个任务放在ROOT/buildSrc/。。。可用于所有子项目

进一步(您可能已经在任务中自己解决了这些问题:
您可以检查子项目中是否存在某个依赖项(或src配置),或者检查存在的依赖项:configurations.compile.resolve().each { println it.canonicalPath }或检查是否存在某个/您的自定义配置。

关于我发现的生成源,例如:

  • https://discuss.gradle.org/t/right-way-to-generate-sources-in-gradle-7/41141
  • https://discuss.gradle.org/t/how-to-add-generated-sources-to-compile-classpath-without-adding-them-to-the-main-sourceset/5614

最新更新