我是IntelliJ和Gradle的新手,但我对Java和Eclipse有足够的经验。我从wsdl文件中生成了一些java类。我把它们放在src/main/resources
下,文件夹名为“generatedsources”。
我尝试在IntelliJ上使用gradle阻止此文件夹及其子文件夹(如src/main/resources/generatedsources/*
)的checkstyle。
我试了一些这样的台词;
task checkstyle(type: Checkstyle) {
source 'src'
// include '**/*.java'
// exclude '**/gen/**'
// exclude '**/R.java'
// exclude '**/BuildConfig.java'
exclude 'src/main/resources/generatedsources/**'
}
但我又失败了。
build.gradle;
apply plugin: 'war'
apply plugin: 'jetty'
apply plugin: 'checkstyle'
apply plugin: 'java'
apply plugin: 'no.nils.wsdl2java'
sourceCompatibility = 1.7
version = '1.0'
...
buildscript{
repositories{
jcenter()
mavenCentral()
}
dependencies {
classpath 'no.nils:wsdl2java:0.10'
}
}
task checkstyle(type: Checkstyle) {
source 'src'
// include '**/*.java'
// exclude '**/gen/**'
// exclude '**/R.java'
// exclude '**/BuildConfig.java'
exclude 'src/main/resources/generatedsources/**'
}
EDIT -建议后(但仍失败!):
apply plugin: 'war'
apply plugin: 'jetty'
apply plugin: 'checkstyle'
apply plugin: 'java'
apply plugin: 'no.nils.wsdl2java'
sourceCompatibility = 1.7
version = '1.0'
description = """BLABLABLA_application"""
war.archiveName = "BLABLABLA.war"
configurations{
deployerJars
}
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.codehaus.jackson', name: 'jackson-core-asl', version: '1.9.3'
compile group: 'org.codehaus.jackson', name: 'jackson-mapper-asl', version: '1.9.3'
compile group: 'org.springframework', name: 'spring-core', version:'4.0.0.RELEASE'
compile group: 'org.springframework', name: 'spring-web', version:'4.0.0.RELEASE'
compile 'log4j:log4j:1.2.17'
compile 'com.sun.xml.ws:jaxws-rt:2.2.8'
compile 'org.jvnet.jax-ws-commons.spring:jaxws-spring:1.9'
compile group: 'org.springframework', name: 'spring-webmvc', version:'4.0.0.RELEASE'
providedCompile group: 'javax.servlet', name: 'servlet-api', version:'2.5'
testCompile group: 'junit', name: 'junit', version: '4.11'
deployerJars "org.apache.maven.wagon:wagon-http:2.2"
}
jar {
manifest {
attributes 'Implementation-Title': 'BLABLABLA', 'Implementation-Version': version
}
}
uploadArchives {
repositories {
flatDir {
dirs 'repos'
}
}
}
buildscript{
repositories{
jcenter()
mavenCentral()
}
dependencies {
classpath 'no.nils:wsdl2java:0.10'
}
}
wsdl2java{
wsdlsToGenerate = [
["$projectDir/src/main/resources/BLABLABLA.wsdl"]
]
generatedWsdlDir = file("$projectDir/src/gen/java")
wsdlDir = file("$projectDir/src/main/resources")
}
wsdl2javaExt {
cxfVersion = "2.5.1"
}
tasks.withType(Checkstyle) {
exclude '**/your/generated/package/goes/here**'
}
checkstyleMain.exclude '**/your/generated/package/goes/here**'
tasks.withType中的”exclude“和“checkstyleMain”导致“无法解析符号”等错误!
6条答案
按热度按时间ncgqoxb01#
当应用
checkstyle
插件时,自定义任务会沿着交付(参见here),因此,不要添加Checkstyle
类型的自定义任务,而是配置附带的任务。这是应该如何完成的:您还可以配置特定任务,而不是所有任务:
另外,将生成的源代码放在
src/main/resources
下也不是好的做法。bxjv4tth2#
我遵循了一些注解并将其添加到文件
build.gradle
中b09cbbtk3#
只能排除源集中的文件夹。这是以前没有提到的,因为我用的是Intellij,这让我很纠结。生成的文件在**build/文件夹中,和src/**在同一级别。我试过排除build文件夹一段时间,但没有效果。唯一的解决办法是指定源文件夹。由于build文件夹不在src(源文件夹)下,因此它立即工作。
我在这里找到了解决方案:Specify excludes to Checkstyle task
ndasle7k4#
我在checkStyle & pmd + QueryDSL上遇到了很多问题。对我来说,最终的解决方案不是排除生成的源代码,而是在汇编任务后清理它们:没有来源-没有什么可分析的!:)
集合{ finalizedBy cleanQuerydslSourcesDir }
kqhtkvqz5#
现在需要修改“checkstyleMain”任务
Kotlindsl使用
常规dsl使用
d4so4syb6#
用于Kotlindsl