Awesome
Gradle Scapegoat Plugin
Gradle plugin enables a simple configuration of Scapegoat Scala static code analysis tool. The plugin provides default values for the linter allowing to overwrite them.
Configuration
To enable the plugin in the Gradle script:
- add a plugin in the
plugins
section of configuration file; - add plugin configuration section, if parameters have to be overwritten.
Configuration options are:
scapegoatVersion
- version of the Scapegoat Scala compiler plugin, highly suggested adding;scalaVersion
- version of Scala runtime library, highly suggested adding;dataDir
- Scapegoat reports directory, optional, default value:${buildDir}/reports/scapegoat
;disabledInspections
- list of disabled inspections, optional, default value: empty list;ignoredFiles
- list of ignored files, optional, default value: empty list;consoleOutput
- a flag enabling console output of the compiler plugin, optional, default value:true
verbose
- a flag enabling verbose output of the compiler plugin, optional, default value:true
reports
- list of report types created during compilation, optional, default value:all
sourcePrefix
- , optional, default value:src/main/scala
minimalWarnLevel
- minimal level of inspections added to the report, optional, default value:info
.enable
- enables plugin for build and buildTest actions, default value:true
testEnable
- enables plugin for buildTest actions, can overwriteenable
flag, default value:true
For the full list of available inspections, check the corresponding Scapegoat README section.
For the full list of available compiler options, check compiler flag section.
Example configuration:
plugins {
id "com.github.eugenesy.scapegoat" version "0.2.0"
}
scapegoat {
scapegoatVersion = "1.4.8"
scalaVersion = "2.12.13"
dataDir = "${buildDir}/reports/scapegoat"
disabledInspections = []
ignoredFiles = []
consoleOutput = true
verbose = true
reports = ["html", "xml"]
sourcePrefix = "src/main/scala"
minimalWarnLevel = "info"
enable = true
testEnable = true
}
plugins {
id("com.github.eugenesy.scapegoat") version "0.2.0"
}
configure<com.github.eugenesy.scapegoat.ScapegoatExtension> {
scapegoatVersion = "1.4.8"
scalaVersion = "2.12.13"
dataDir = "${buildDir}/reports/scapegoat"
disabledInspections = arrayListOf("ArrayEquals", "AvoidToMinusOne")
ignoredFiles = emptyArray<String>().toList()
consoleOutput = true
verbose = true
reports = arrayListOf<String>("html", "xml")
sourcePrefix = "src/main/scala"
minimalWarnLevel = "info"
enable = true
testEnable = true
}
For more details, check examples.
Compatibility
The plugin is dependent on Kotlin runtime, provided by Gradle. Kotlin API 1.3 is deprecated and is being removed soon.
Plugin version | Minimal Gradle Version | Kotlin API |
---|---|---|
0.1.4 | 5.3 | 1.3 |
0.2.0 | 6.5 | 1.4 |
Changelog
0.2.0
- Drop support of Gradle versions from
5.3
to6.5
- Kotlin runtime upgrade
- Scapegoat default version update to
1.4.8
and Scala version to2.12.13
0.1.4
- Fixed a problem with
scalaVersion
andscapegoatVersion
parameters. - Added configuration option to enable plugin for sources and tests separately.
- Reports for test tasks are stored in a separate directory.
0.1.3
- Fixed a problem with multiple-value parameters, e.g.
reports
. Now multiple values do not break compilation step because of wrong parameter formatting. - Improved examples
0.1.0
The initial release of the plugin.
License
Copyright 2020 Eugene Sypachev
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.