Gradle Java编译时区分大小写

时间:2018-09-06 20:36:15

标签: gradle

我有一个插件im正在编写中,用于处理供应商生成的一些代码。现在,我遇到的问题是代码生成器将某些文件命名为*.JAVA而不是*.java,并且编译任务无法提取它们。

但是变得奇怪

dependencies {
  j2cImplementation 'com.ibm.etools:marshall:6.1.0.1-20070706_1700'
  j2cCompileOnly 'javax.resource:connector:1.0'
}

sourceSets {
  j2c {
    java {
      srcDirs += "src/generated-sources/j2c/java"
    }
  }
}

compileJ2cJava {
  source = sourceSets.j2c.allSource
}

compileJava.dependsOn compileJ2cJava

task tryit {
  sourceSets.j2c.allSource.each {println(it)}
  println("*")
  compileJ2cJava.source.each {println(it)}
  println("*")
  compileJ2cJava.includes.each {println(it)}
  println("*")
  compileJ2cJava.excludes.each {println(it)}
}

打印此

/formats/TPQPMI90Out.java
/formats/TPQPMI90OutRec.java
/formats/TPQPMI90OutRec_ERROR_TABLE.JAVA
/formats/TPQPMI95Out.java
/formats/TPQPMI95OutRec.java
/formats/TPQPMI95OutRec_ERROR_TABLE.JAVA
/scopes/TPQPMI90In.java
/scopes/TPQPMI90InRec.java
/scopes/TPQPMI95In.java
/scopes/TPQPMI95InRec.java
*
/formats/TPQPMI90Out.java
/formats/TPQPMI90OutRec.java
/formats/TPQPMI90OutRec_ERROR_TABLE.JAVA
/formats/TPQPMI95Out.java
/formats/TPQPMI95OutRec.java
/formats/TPQPMI95OutRec_ERROR_TABLE.JAVA
/scopes/TPQPMI90In.java
/scopes/TPQPMI90InRec.java
/scopes/TPQPMI95In.java
/scopes/TPQPMI95InRec.java
*
*

请参阅compileJ2cJava.source.each {println(it)}任务显示* .JAVA文件位于源中,但是当传递给编译器时,编译器将永远不会获得这两个文件,并且找不到类错误。

我很困惑,我尝试了所有可以想到的地方include的所有组合。我无法获取这些文件。有什么想法吗?

好吧,我找到了理由

https://docs.gradle.org/current/javadoc/org/gradle/api/file/SourceDirectorySet.html#getFilter--

看起来,如果没有大量工作(基本上是向系统中添加新语言),我将无能为力,不得不写一个小写所有扩展名的任务。

0 个答案:

没有答案