我正在尝试将Grails 2插件转换为Grails 3,但我无法排除在测试中仅使用生成的jar中使用的几个域类。
在build.gradle中,您应该从JAR文件中排除已编译的类:
jar {
exclude "com/demo/**/**"
}
...但是如果我尝试这个,我会从Gradle得到以下错误:
Could not find method jar() for arguments [build_64zizslf5a7zfo329yz5tdsoi$_run_closure1@566c53c] on root project '...'
我可以发布整个堆栈跟踪但它看起来不是很有帮助。我正在使用Gradle 2.3,由create-plugin
命令生成的默认Gradle包装器提供。我还没有对build.gradle
进行任何其他更改,因为我的插件不需要任何外部依赖项。
答案 0 :(得分:2)
在https://github.com/jeffbrown/excludesdemo查看项目。这包括https://github.com/jeffbrown/excludesdemo/tree/master/grails-app/domain下的2个域类。
https://github.com/jeffbrown/excludesdemo/blob/72896a3f88f617d530bbdde8976d5bfe8d1e820a/build.gradle#L73的顶级build.gradle
文件包含以下内容:
jar {
exclude 'package1/**'
}
当您运行./gradlew jar
时,您应该会看到build/libs/excludesdemo-0.1-SNAPSHOT.jar
生成的jar文件包含package2/Author.class
且不包含package1/Person.class
。