eo:lint
Full name:
org.eolang:eo-maven-plugin:0.61.0:lint
Description:
Mojo that runs all lints and checks errors and warnings, preferably after the assemble goal.
This goal goes through all XMIR files generated in the previous steps (see MjParse or MjPull goals) and runs all available lints on them. If any errors or warnings are found, they are logged to the console, and depending on the configuration, the build may fail. The linting results are also embedded back into the XMIR files for future reference. Lints might use caching to speed up the process on subsequent runs. Cached files are stored in the CACHE directory. The results of linting are saved in the DIR directory.
Attributes:
- Requires a Maven project to be executed.
- The goal is thread-safe and supports parallel builds.
- Since version:
0.31.0. - Binds by default to the lifecycle phase:
process-sources.
Required Parameters
| Name | Type | Since | Description |
|---|---|---|---|
<discoverSelf> |
boolean |
0.12.0 |
Shall we discover JAR artifacts for .EO sources? Default: falseUser Property: eo.discoverSelf |
<failOnWarning> |
boolean |
- |
Whether we should fail on warning. Default: trueUser Property: eo.failOnWarning |
<foreign> |
File |
- |
File with foreign "tojos". Default: ${project.build.directory}/eo-foreign.jsonUser Property: eo.foreign |
<foreignFormat> |
String |
- |
Format of "foreign" file ("json" or "csv"). Default: csvUser Property: eo.foreignFormat |
<generatedDir> |
File |
- |
Generated sourced directory. Default: ${project.build.directory}/generated-sourcesUser Property: eo.generatedDir |
<ignoreRuntime> |
boolean |
- |
Add eo-runtime dependency to the classpath.
That property is useful only for eo-runtime library compilation. When you compile eo-runtime, you don't want to add eo-runtime from foreign sources (since you compile an eo-runtime library and classpath will anyway have all required classes) and in this case, you should set this property to true. In any other cases, the eo-runtime dependency will be downloaded and added to the classpath automatically. Default: falseUser Property: eo.ignoreRuntime |
<ignoreVersionConflicts> |
boolean |
0.1.0 |
Fail resolution process on conflicting dependencies. Default: falseUser Property: eo.ignoreVersionConflicts |
<lintAsPackage> |
boolean |
- |
Whether we should lint all the sources together as package. Default: trueUser Property: eo.lintAsPackage |
<offline> |
boolean |
0.32.0 |
If we are offline and not able to download anything from the internet. Default: falseUser Property: eo.offline |
<overWrite> |
boolean |
0.10.0 |
Pull again even if the .eo file is already present? Default: falseUser Property: eo.overWrite |
<placed> |
File |
0.11.0 |
The path to a text file where paths of all added .class (and maybe others) files are placed. Default: ${project.build.directory}/eo-placed.jsonUser Property: eo.placed |
<placedFormat> |
String |
- |
Format of "placed" file ("json" or "csv"). Default: jsonUser Property: eo.placedFormat |
<skipExperimentalLints> |
boolean |
0.57.0 |
If set to TRUE, experimental lints are skipped during the linting. Default: falseUser Property: eo.skipExperimentalLints |
<skipLinting> |
boolean |
- |
Whether we should skip linting at all. Default: falseUser Property: eo.skipLinting |
<skipZeroVersions> |
boolean |
0.9.0 |
Skip artifact with the version 0.0.0. Default: trueUser Property: eo.skipZeroVersions |
<sourcesDir> |
File |
- |
Directory in which .eo files are located. Default: ${project.basedir}/src/main/eoUser Property: eo.sourcesDir |
<tag> |
String |
0.21.0 |
The Git tag to pull objects from, in objectionary. Default: masterUser Property: eo.tag |
<targetDir> |
File |
- |
Target directory. Default: ${project.build.directory}/eoUser Property: eo.targetDir |
<trackTransformationSteps> |
boolean |
0.24.0 |
Track optimization steps into intermediate XMIR files? Default: falseUser Property: eo.trackTransformationSteps |
<xslMeasures> |
File |
0.41.0 |
The path of the file where XSL measurements (time of execution in milliseconds) will be stored. Default: ${project.build.directory}/eo/xsl-measures.jsonUser Property: eo.xslMeasuresFile |
Optional Parameters
| Name | Type | Since | Description |
|---|---|---|---|
<cache> |
File |
- |
EO cache directory. User Property: eo.cache |
<cacheEnabled> |
boolean |
0.55.0 |
Use global caching or not. Default: trueUser Property: eo.cacheEnabled |
<keepBinaries> |
Set<String> |
0.24 |
List of inclusion GLOB filters for unplacing and unspiling (ONLY these files will stay). See also: Placing and Unplacing in JAR Artifacts |
<placeBinaries> |
Set<String> |
0.15 |
List of inclusion GLOB filters for finding class files while placing them from where they were resolved to classes directory. |
<rewriteBinaries> |
boolean |
0.32.0 |
Rewrite binaries in output directory or not. Default: trueUser Property: eo.rewriteBinaries |
<scope> |
String |
- |
Current scope (either "compile" or "test"). User Property: eo.scope |
<skip> |
boolean |
- |
Whether we should skip goal execution. Default: falseUser Property: eo.skip |
<skipBinaries> |
Set<String> |
0.15 |
List of exclusion GLOB filters for finding class files while placing them from where they were resolved to classed directory. |
<skipProgramLints> |
Set<String> |
0.57 |
List of WPA lints which must be skipped during the linting. |
<skipSourceLints> |
Set<String> |
0.57 |
List of individual lints which must be skipped during the linting. |
<timeout> |
Integer |
0.28.12 |
Mojo execution timeout in seconds. User Property: eo.timeout |
<unrollExitError> |
boolean |
0.29.0 |
If set to TRUE, the exception on exit will be printed in details to the log. User Property: eo.unrollExitError |
Parameter Details
<cache>
- Type:
java.io.File - Required:
No - User Property:
eo.cache
<cacheEnabled>
- Type:
boolean - Since:
0.55.0 - Required:
No - User Property:
eo.cacheEnabled - Default:
true
<discoverSelf>
- Type:
boolean - Since:
0.12.0 - Required:
Yes - User Property:
eo.discoverSelf - Default:
false
<failOnWarning>
- Type:
boolean - Required:
Yes - User Property:
eo.failOnWarning - Default:
true
<foreign>
- Type:
java.io.File - Required:
Yes - User Property:
eo.foreign - Default:
${project.build.directory}/eo-foreign.json
<foreignFormat>
- Type:
java.lang.String - Required:
Yes - User Property:
eo.foreignFormat - Default:
csv
<generatedDir>
- Type:
java.io.File - Required:
Yes - User Property:
eo.generatedDir - Default:
${project.build.directory}/generated-sources
<ignoreRuntime>
That property is useful only for eo-runtime library compilation. When you compile eo-runtime, you don't want to add eo-runtime from foreign sources (since you compile an eo-runtime library and classpath will anyway have all required classes) and in this case, you should set this property to true. In any other cases, the eo-runtime dependency will be downloaded and added to the classpath automatically.
- Type:
boolean - Required:
Yes - User Property:
eo.ignoreRuntime - Default:
false
<ignoreVersionConflicts>
- Type:
boolean - Since:
0.1.0 - Required:
Yes - User Property:
eo.ignoreVersionConflicts - Default:
false
<keepBinaries>
See also: Placing and Unplacing in JAR Artifacts
- Type:
java.util.Set<java.lang.String> - Since:
0.24 - Required:
No
<lintAsPackage>
- Type:
boolean - Required:
Yes - User Property:
eo.lintAsPackage - Default:
true
<offline>
- Type:
boolean - Since:
0.32.0 - Required:
Yes - User Property:
eo.offline - Default:
false
<overWrite>
- Type:
boolean - Since:
0.10.0 - Required:
Yes - User Property:
eo.overWrite - Default:
false
<placeBinaries>
- Type:
java.util.Set<java.lang.String> - Since:
0.15 - Required:
No
<placed>
- Type:
java.io.File - Since:
0.11.0 - Required:
Yes - User Property:
eo.placed - Default:
${project.build.directory}/eo-placed.json
<placedFormat>
- Type:
java.lang.String - Required:
Yes - User Property:
eo.placedFormat - Default:
json
<rewriteBinaries>
- Type:
boolean - Since:
0.32.0 - Required:
No - User Property:
eo.rewriteBinaries - Default:
true
<scope>
- Type:
java.lang.String - Required:
No - User Property:
eo.scope
<skip>
- Type:
boolean - Required:
No - User Property:
eo.skip - Default:
false
<skipBinaries>
- Type:
java.util.Set<java.lang.String> - Since:
0.15 - Required:
No
<skipExperimentalLints>
- Type:
boolean - Since:
0.57.0 - Required:
Yes - User Property:
eo.skipExperimentalLints - Default:
false
<skipLinting>
- Type:
boolean - Required:
Yes - User Property:
eo.skipLinting - Default:
false
<skipProgramLints>
- Type:
java.util.Set<java.lang.String> - Since:
0.57 - Required:
No
<skipSourceLints>
- Type:
java.util.Set<java.lang.String> - Since:
0.57 - Required:
No
<skipZeroVersions>
- Type:
boolean - Since:
0.9.0 - Required:
Yes - User Property:
eo.skipZeroVersions - Default:
true
<sourcesDir>
- Type:
java.io.File - Required:
Yes - User Property:
eo.sourcesDir - Default:
${project.basedir}/src/main/eo
<tag>
- Type:
java.lang.String - Since:
0.21.0 - Required:
Yes - User Property:
eo.tag - Default:
master
<targetDir>
- Type:
java.io.File - Required:
Yes - User Property:
eo.targetDir - Default:
${project.build.directory}/eo
<timeout>
- Type:
java.lang.Integer - Since:
0.28.12 - Required:
No - User Property:
eo.timeout
<trackTransformationSteps>
- Type:
boolean - Since:
0.24.0 - Required:
Yes - User Property:
eo.trackTransformationSteps - Default:
false
<unrollExitError>
- Type:
boolean - Since:
0.29.0 - Required:
No - User Property:
eo.unrollExitError
<xslMeasures>
- Type:
java.io.File - Since:
0.41.0 - Required:
Yes - User Property:
eo.xslMeasuresFile - Default:
${project.build.directory}/eo/xsl-measures.json