繁体   English   中英

有没有办法将 gradle 任务应用于依赖项?

[英]Is there a way to apply a gradle task to a dependency?

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

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

dependencies {
    implementation project(':common')
}

另外,如果有人能指出正确的方向,用构建文件夹中的 instrumented.java 文件而不是原始 src 文件夹来编译 src 文件夹,我将不胜感激。

我最初尝试使用 javac 手动编译整个项目,但事实证明这比必要的要复杂得多。

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

  • 你可以为此编写自己的 gradle 插件
  • 或者您可以将该任务放在 ROOT/buildSrc/... 中以供所有子项目使用

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM