gradle构建测试时如何执行一些代码
Kotlin有一个名为all open的编译器插件。 它强制所有带有一些注释的类都是打开的。
我想为我的测试使用这个特性,但是我不想让它在我的生产代码中(我想让我的类关闭)。 我该怎么做?
我尝试了这样的:
test { allOpen { annotation('com.my.Annotation') } }
但代码总是执行。
发生这种情况是因为该插件应用于build.gradle
文件的根目录中。
除非设置了一些项目属性,否则100%工作的解决方案是不应用插件。
if (project.hasProperty("allopen")) { apply plugin: "kotlin-allopen" allOpen { annotation('com.my.Annotation') } }
并运行属性gradle -Pallopen test
: gradle -Pallopen test
。
也许一些Gradle大师可以用更好的解决方案来加入。
- Gradle + JUnit + Android数据绑定
- Beta由Crashlytics – 包似乎已损坏
- Maven发布gradle插件跳过版本
- IntelliJ Idea for Kotlin @ConfigurationProperties类中不生成spring-configuration-metadata.json文件
- Kotlin 1.0.0-rc-1036注释处理问题
- 使用Gradle构建Kotlin项目有时会导致NoClassDefFoundError失败
- Spring Boot:Boot Run不能添加addResources = true
- 如何使IntelliJ参考源代码在另一个模块?
- 没有涵盖Kotlin方法的报道