无法在 Gradle 中重新排序 AspectJ 任务
Can't reorder AspectJ task in Gradle
我正在使用 Gradle 4.5.1、gradle-aspectj
2.0 插件和其他插件。问题是 aspectj
的任务 compileAspect
在 compileJava
之前执行。我好像找到了 a problem here。所以我尝试通过以下方式重新排序任务执行:
project.tasks['compileJava'].dependsOn.remove(project.tasks['compileAspect'])
project.tasks['compileAspect'].dependsOn(project.tasks['compileJava'])
我也尝试过几乎相同的方法,将 project.tasks[taskName]
替换为 taskName
。但是,在重新排序后 compileAspect
任务被忽略(完全没有跳过)。更重要的是:虽然 compileJava
似乎被执行了,但它不会在 build/classes
目录中产生任何 类。
我是 Gradle 的新手,所以也许我在重新排序的某个地方犯了错误?请参阅 the Github repository 作为产生问题的示例。
非常感谢您的帮助!
What's more: although compileJava seems to be executed it doesn't produce any classes in the build/classes directory.
这似乎是 Gradle AspectJ 插件 的意图。您链接的行 (62) 之前的行包含:
project.tasks[javaTaskName].deleteAllActions()
这会导致 compileJava
任务什么都不做,这就是为什么对于插件来说,任务的顺序并不重要。该插件旨在用 compileAspect
任务完全替换 compileJava
任务。
请注意,Gradle AspectJ 插件 是 archived four months ago:
We do not use this code any longer and this repository has been archived.
如果您计划在一个构建中使用两个编译步骤(Java 和 AspectJ),您可以创建自己的插件。也许您可以分叉现有项目并重用任务 class.
我正在使用 Gradle 4.5.1、gradle-aspectj
2.0 插件和其他插件。问题是 aspectj
的任务 compileAspect
在 compileJava
之前执行。我好像找到了 a problem here。所以我尝试通过以下方式重新排序任务执行:
project.tasks['compileJava'].dependsOn.remove(project.tasks['compileAspect'])
project.tasks['compileAspect'].dependsOn(project.tasks['compileJava'])
我也尝试过几乎相同的方法,将 project.tasks[taskName]
替换为 taskName
。但是,在重新排序后 compileAspect
任务被忽略(完全没有跳过)。更重要的是:虽然 compileJava
似乎被执行了,但它不会在 build/classes
目录中产生任何 类。
我是 Gradle 的新手,所以也许我在重新排序的某个地方犯了错误?请参阅 the Github repository 作为产生问题的示例。
非常感谢您的帮助!
What's more: although compileJava seems to be executed it doesn't produce any classes in the build/classes directory.
这似乎是 Gradle AspectJ 插件 的意图。您链接的行 (62) 之前的行包含:
project.tasks[javaTaskName].deleteAllActions()
这会导致 compileJava
任务什么都不做,这就是为什么对于插件来说,任务的顺序并不重要。该插件旨在用 compileAspect
任务完全替换 compileJava
任务。
请注意,Gradle AspectJ 插件 是 archived four months ago:
We do not use this code any longer and this repository has been archived.
如果您计划在一个构建中使用两个编译步骤(Java 和 AspectJ),您可以创建自己的插件。也许您可以分叉现有项目并重用任务 class.