我们已经开发了一些我们希望包含在测试版本中的概要分析方面,但不包括在我们的生产版本中。我正在寻找构建build.gradle文件和源目录的最佳实践方法。
我最初的想法是创建一个compileJavaAJ任务,以及一个依赖于compileJavaAJ的jarAJ任务。 compileJavaAJ看起来非常类似于aspectJ插件http://github.com/breskeby/gradleplugins/raw/0.9-upgrade/aspectjPlugin/aspectJ.gradle中定义的compileJava。仅应用此插件的问题在于它完全取代了compileJava(即使用javac的那个)。我需要两个构建目标 - 一个使用javac,另一个使用ajc。如果有更好的方法,我欢迎提出建议。
接下来,我需要决定在哪里放置aspectJ代码。我不想把它放在src / main / java中,因为java编译器会阻塞它。所以,我正在考虑定义一个新的SourceSet,src / main / aspectJ,只有compileJavaAJ才知道。虽然SourceSet应该为java代码建模,所以我不确定这是否是正确的方法。
非常感谢任何输入。谢谢!
答案 0 :(得分:0)
我会使用像“withAspectJ”这样的属性来区分使用和不使用方面进行编译。看看下面的代码片段:
if(project.hasProperty('withAspectj') && project.getProperty("withAspectj")){
sourceSets {
main {
java {
srcDir 'src/main/aspectj'
}
}
}
}
如果名为withAspectj的属性求值为true,则此片段会将目录src / main / aspectj添加到主源集。现在,您可以将所有方面放入此特定目录中。如果你没有传递withAspectj属性,替换的compileJava任务将编译你的代码而不将方面连接到它。 但是,如果从命令行运行构建: gradle build -PwithAspectj = true
位于src / main / aspectj中的所有方面都将连接到您的代码中。
希望有所帮助,
的问候,
René