• 0.61.0

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: false
User Property: eo.discoverSelf
<failOnWarning> boolean - Whether we should fail on warning.
Default: true
User Property: eo.failOnWarning
<foreign> File - File with foreign "tojos".
Default: ${project.build.directory}/eo-foreign.json
User Property: eo.foreign
<foreignFormat> String - Format of "foreign" file ("json" or "csv").
Default: csv
User Property: eo.foreignFormat
<generatedDir> File - Generated sourced directory.
Default: ${project.build.directory}/generated-sources
User 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: false
User Property: eo.ignoreRuntime
<ignoreVersionConflicts> boolean 0.1.0 Fail resolution process on conflicting dependencies.
Default: false
User Property: eo.ignoreVersionConflicts
<lintAsPackage> boolean - Whether we should lint all the sources together as package.
Default: true
User Property: eo.lintAsPackage
<offline> boolean 0.32.0 If we are offline and not able to download anything from the internet.
Default: false
User Property: eo.offline
<overWrite> boolean 0.10.0 Pull again even if the .eo file is already present?
Default: false
User 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.json
User Property: eo.placed
<placedFormat> String - Format of "placed" file ("json" or "csv").
Default: json
User Property: eo.placedFormat
<skipExperimentalLints> boolean 0.57.0 If set to TRUE, experimental lints are skipped during the linting.
Default: false
User Property: eo.skipExperimentalLints
<skipLinting> boolean - Whether we should skip linting at all.
Default: false
User Property: eo.skipLinting
<skipZeroVersions> boolean 0.9.0 Skip artifact with the version 0.0.0.
Default: true
User Property: eo.skipZeroVersions
<sourcesDir> File - Directory in which .eo files are located.
Default: ${project.basedir}/src/main/eo
User Property: eo.sourcesDir
<tag> String 0.21.0 The Git tag to pull objects from, in objectionary.
Default: master
User Property: eo.tag
<targetDir> File - Target directory.
Default: ${project.build.directory}/eo
User Property: eo.targetDir
<trackTransformationSteps> boolean 0.24.0 Track optimization steps into intermediate XMIR files?
Default: false
User 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.json
User 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: true
User 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: true
User Property: eo.rewriteBinaries
<scope> String - Current scope (either "compile" or "test").
User Property: eo.scope
<skip> boolean - Whether we should skip goal execution.
Default: false
User 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>

EO cache directory.
  • Type: java.io.File
  • Required: No
  • User Property: eo.cache

<cacheEnabled>

Use global caching or not.
  • Type: boolean
  • Since: 0.55.0
  • Required: No
  • User Property: eo.cacheEnabled
  • Default: true

<discoverSelf>

Shall we discover JAR artifacts for .EO sources?
  • Type: boolean
  • Since: 0.12.0
  • Required: Yes
  • User Property: eo.discoverSelf
  • Default: false

<failOnWarning>

Whether we should fail on warning.
  • Type: boolean
  • Required: Yes
  • User Property: eo.failOnWarning
  • Default: true

<foreign>

File with foreign "tojos".
  • Type: java.io.File
  • Required: Yes
  • User Property: eo.foreign
  • Default: ${project.build.directory}/eo-foreign.json

<foreignFormat>

Format of "foreign" file ("json" or "csv").
  • Type: java.lang.String
  • Required: Yes
  • User Property: eo.foreignFormat
  • Default: csv

<generatedDir>

Generated sourced directory.
  • Type: java.io.File
  • Required: Yes
  • User Property: eo.generatedDir
  • Default: ${project.build.directory}/generated-sources

<ignoreRuntime>

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.

  • Type: boolean
  • Required: Yes
  • User Property: eo.ignoreRuntime
  • Default: false

<ignoreVersionConflicts>

Fail resolution process on conflicting dependencies.
  • Type: boolean
  • Since: 0.1.0
  • Required: Yes
  • User Property: eo.ignoreVersionConflicts
  • Default: false

<keepBinaries>

List of inclusion GLOB filters for unplacing and unspiling (ONLY these files will stay).
See also: Placing and Unplacing in JAR Artifacts
  • Type: java.util.Set<java.lang.String>
  • Since: 0.24
  • Required: No

<lintAsPackage>

Whether we should lint all the sources together as package.
  • Type: boolean
  • Required: Yes
  • User Property: eo.lintAsPackage
  • Default: true

<offline>

If we are offline and not able to download anything from the internet.
  • Type: boolean
  • Since: 0.32.0
  • Required: Yes
  • User Property: eo.offline
  • Default: false

<overWrite>

Pull again even if the .eo file is already present?
  • Type: boolean
  • Since: 0.10.0
  • Required: Yes
  • User Property: eo.overWrite
  • Default: false

<placeBinaries>

List of inclusion GLOB filters for finding class files while placing them from where they were resolved to classes directory.
  • Type: java.util.Set<java.lang.String>
  • Since: 0.15
  • Required: No

<placed>

The path to a text file where paths of all added .class (and maybe others) files are placed.
  • Type: java.io.File
  • Since: 0.11.0
  • Required: Yes
  • User Property: eo.placed
  • Default: ${project.build.directory}/eo-placed.json

<placedFormat>

Format of "placed" file ("json" or "csv").
  • Type: java.lang.String
  • Required: Yes
  • User Property: eo.placedFormat
  • Default: json

<rewriteBinaries>

Rewrite binaries in output directory or not.
  • Type: boolean
  • Since: 0.32.0
  • Required: No
  • User Property: eo.rewriteBinaries
  • Default: true

<scope>

Current scope (either "compile" or "test").
  • Type: java.lang.String
  • Required: No
  • User Property: eo.scope

<skip>

Whether we should skip goal execution.
  • Type: boolean
  • Required: No
  • User Property: eo.skip
  • Default: false

<skipBinaries>

List of exclusion GLOB filters for finding class files while placing them from where they were resolved to classed directory.
  • Type: java.util.Set<java.lang.String>
  • Since: 0.15
  • Required: No

<skipExperimentalLints>

If set to TRUE, experimental lints are skipped during the linting.
  • Type: boolean
  • Since: 0.57.0
  • Required: Yes
  • User Property: eo.skipExperimentalLints
  • Default: false

<skipLinting>

Whether we should skip linting at all.
  • Type: boolean
  • Required: Yes
  • User Property: eo.skipLinting
  • Default: false

<skipProgramLints>

List of WPA lints which must be skipped during the linting.
  • Type: java.util.Set<java.lang.String>
  • Since: 0.57
  • Required: No

<skipSourceLints>

List of individual lints which must be skipped during the linting.
  • Type: java.util.Set<java.lang.String>
  • Since: 0.57
  • Required: No

<skipZeroVersions>

Skip artifact with the version 0.0.0.
  • Type: boolean
  • Since: 0.9.0
  • Required: Yes
  • User Property: eo.skipZeroVersions
  • Default: true

<sourcesDir>

Directory in which .eo files are located.
  • Type: java.io.File
  • Required: Yes
  • User Property: eo.sourcesDir
  • Default: ${project.basedir}/src/main/eo

<tag>

The Git tag to pull objects from, in objectionary.
  • Type: java.lang.String
  • Since: 0.21.0
  • Required: Yes
  • User Property: eo.tag
  • Default: master

<targetDir>

Target directory.
  • Type: java.io.File
  • Required: Yes
  • User Property: eo.targetDir
  • Default: ${project.build.directory}/eo

<timeout>

Mojo execution timeout in seconds.
  • Type: java.lang.Integer
  • Since: 0.28.12
  • Required: No
  • User Property: eo.timeout

<trackTransformationSteps>

Track optimization steps into intermediate XMIR files?
  • Type: boolean
  • Since: 0.24.0
  • Required: Yes
  • User Property: eo.trackTransformationSteps
  • Default: false

<unrollExitError>

If set to TRUE, the exception on exit will be printed in details to the log.
  • Type: boolean
  • Since: 0.29.0
  • Required: No
  • User Property: eo.unrollExitError

<xslMeasures>

The path of the file where XSL measurements (time of execution in milliseconds) will be stored.
  • Type: java.io.File
  • Since: 0.41.0
  • Required: Yes
  • User Property: eo.xslMeasuresFile
  • Default: ${project.build.directory}/eo/xsl-measures.json