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大师可以用更好的解决方案来加入。
- Android将kotlin资源部署到maven资源库
- Gradle 3.0.0-alpha1与kotlin-android插件1.1.2-3不兼容?
- 我怎样才能把一个groovy任务gradle转换成Gradle Kotlin DSL来生成一个pom.xml?
- 由于重复,Kotlin gradle.build ZipException
- JaCoCo Gradle插件报告每个包的0.0类覆盖率
- 如何从命令行运行Kotlin的spark java
- Android,领域,Gradle:错误:注释处理器:找不到RealmProcessor
- 如何根据自定义规则验证源代码? (代码中没有“DANGER”字符串)
- 不能使用Gradle和Kotlin编译项目