Add targetExclude to plugin-gradle README
See original GitHub issueMy project (using Gradle) has a task which generates some Scala sources, and I add generated source directories to the scala
source set:
project.extensions.findByType<SourceSetContainer>()?.invoke {
"main" {
withConvention(ScalaSourceSet::class) {
scala {
srcDir(project.generatedScalaDirectory)
}
}
}
}
val Project.generatedScalaDirectory: Provider<Directory>
get() = layout.buildDirectory.dir("generated-scala")
I don’t really care about generated sources formatting, because they are generated upon each compilation to the build directory, and are not committed to the repository. But as I’ve just discovered, spotless check (with its scalafmt support) fails on these generated sources.
Since I don’t really want these sources to be checked, I would prefer for there to be a way to set up and exclude clause, something like
spotless {
scala {
scalafmt().configFile("${project.rootDir}/.scalafmt.conf")
exclude(project.generatedScalaDirectory)
}
}
However, it appears that there is no way to do it. It seems that there are two options:
-
Use
ignoreErrorForPath
to specify a path to the excluded file.This does not appear to work: I still get a failed build, regardless of what path I specify with this method. Its sources indicate that it expects a “relative path”, but it is not really clear relative to where it should be; it does not seem to be the project directory or root project directory.
Anyway, this approach does not scale because it seems that it requires all files to be specified, separately, and not just the enclosing directory, which does not really scale.
-
Use the
target
method to explicitly specify only thesrc/main/scala
andsrc/test/scala
sources.This is suboptimal, because I want to exclude something. This means that I have to remember to add new directories, e.g. new source sets, say,
integrationTest
, or I risk silently losing style verification for them.
Issue Analytics
- State:
- Created 5 years ago
- Comments:7 (6 by maintainers)
Top GitHub Comments
I added
targetExclude
in #353. I resolved the ambiguities in this way: the files that get formatted aretarget - targetExclude
. When you calltarget
, you wipe out any previous calls. Same withtargetExclude
.Implementing this change is just a few lines of code, but it actually affects 2 other issues. For this reason I’m closing this issue out so that the discussion can continue in the PR. If the PR meets the needs of all the issues, then I’ll merge and we’ll be all set.
Published in 3.18.0.