One could be tempted to exclude a directory via targetExclude, e.g. project.layout.buildDirectory
spotless {
scala {
toggleOffOn()
targetExclude(project.layout.buildDirectory)
scalafmt('2.7.5').configFile(configPath + '/enforcement/spotless-scalafmt.conf')
}
}
However this doesn't work as it's not handled specifically. So when the task is configured, it uses the dir as a regular "file", and the operation here does nothing (target and targetExclude are FileCollection)
|
FileCollection totalTarget = targetExclude == null ? target : target.minus(targetExclude); |
The alternative is to expand this to a FileTree before passing it to targetExclude. In this case the operation above correctly removes the files nested under the directory.
- targetExclude(project.layout.buildDirectory)
+ targetExclude(project.layout.buildDirectory.asFileTree)
However, I believe that spotless could do that automatically, if the type is known to represent a directory.
On another note I tried to pass a Provider<String> (targetExclude(genDirectory.map { it.asFile.path + "/**/*.scala" })), but this was interpreted as a single file (because the value is passed to project.files(...)).
One could be tempted to exclude a directory via
targetExclude, e.g.project.layout.buildDirectoryspotless { scala { toggleOffOn() targetExclude(project.layout.buildDirectory) scalafmt('2.7.5').configFile(configPath + '/enforcement/spotless-scalafmt.conf') } }However this doesn't work as it's not handled specifically. So when the task is configured, it uses the dir as a regular "file", and the operation here does nothing (
targetandtargetExcludeareFileCollection)spotless/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/FormatExtension.java
Line 1078 in d3a160d
The alternative is to expand this to a
FileTreebefore passing it totargetExclude. In this case the operation above correctly removes the files nested under the directory.However, I believe that spotless could do that automatically, if the type is known to represent a directory.
On another note I tried to pass a
Provider<String>(targetExclude(genDirectory.map { it.asFile.path + "/**/*.scala" })), but this was interpreted as a single file (because the value is passed toproject.files(...)).