我正在使用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作为产生问题的示例。
非常感谢您的帮助!
更重要的是:虽然compileJava似乎被执行但它不会在build / classes目录中生成任何类。
这似乎是Gradle AspectJ插件的目的。您链接的那一行(62)之前的行包含:
project.tasks[javaTaskName].deleteAllActions()
这导致compileJava
任务根本不做任何事情,这就是为什么,对于插件,任务的顺序无关紧要。该插件旨在用compileJava
任务完全取代compileAspect
任务。
请注意,Gradle AspectJ插件是archived four months ago:
我们不再使用此代码,并且此存储库已存档。
如果您计划在一个版本中同时使用两个编译步骤(Java和AspectJ),则可以创建自己的插件。也许您可以分叉现有项目并重用任务类。