无法在Gradle中重新排序AspectJ任务

问题描述 投票:0回答:1

我正在使用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作为产生问题的示例。

非常感谢您的帮助!

java gradle build.gradle aspectj gradle-plugin
1个回答
1
投票

更重要的是:虽然compileJava似乎被执行但它不会在build / classes目录中生成任何类。

这似乎是Gradle AspectJ插件的目的。您链接的那一行(62)之前的行包含:

project.tasks[javaTaskName].deleteAllActions()

这导致compileJava任务根本不做任何事情,这就是为什么,对于插件,任务的顺序无关紧要。该插件旨在用compileJava任务完全取代compileAspect任务。

请注意,Gradle AspectJ插件是archived four months ago

我们不再使用此代码,并且此存储库已存档。

如果您计划在一个版本中同时使用两个编译步骤(Java和AspectJ),则可以创建自己的插件。也许您可以分叉现有项目并重用任务类。

© www.soinside.com 2019 - 2024. All rights reserved.