有人可以给我一个简单的build.gradle示例,说明如何指定运行时部署(war)中未包含的仅编译时类。
自从“运行时”继承自“编译”以来,Gradle似乎已经绕错了方向。我无法想象这样一种情况,我会在运行时想要类,而在编译时却不想。但是,在许多情况下,我不希望在运行时需要类来在编译时生成代码!
我翻阅了gra肿的gradle文档,但找不到任何明确的说明或示例。我怀疑可以通过定义“配置”并将其设置为CompileJava插件的类路径来实现-但是文档不足以说明如何实现此目的。
最佳答案
关于这个话题已经有很多讨论,主要是here,但是结论不明确。
您的方向正确:目前最好的解决方案是声明自己的provided
配置,该配置将包括仅编译依赖项并添加到您的编译类路径中:
configurations{
provided
}
dependencies{
//Add libraries like lombok, findbugs etc
provided '...'
}
//Include provided for compilation
sourceSets.main.compileClasspath += [configurations.provided]
// optional: if using 'idea' plugin
idea {
module{
scopes.PROVIDED.plus += [configurations.provided]
}
}
// optional: if using 'eclipse' plugin
eclipse {
classpath {
plusConfigurations += [configurations.provided]
}
}
通常,这很好。