Package org.eolang.maven
Class TranspileMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.eolang.maven.TranspileMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
@Mojo(name="transpile", defaultPhase=PROCESS_SOURCES, threadSafe=true, requiresDependencyResolution=COMPILE) public final class TranspileMojo extends org.apache.maven.plugin.AbstractMojo
Transpile.- Since:
- 0.1
-
-
Field Summary
Fields Modifier and Type Field Description protected File
cache
EO cache directory.protected BiConsumer<org.apache.maven.model.Dependency,Path>
central
The central.protected File
classesDir
Directory where classes are stored in target.protected boolean
discoverSelf
Shall we discover JAR artifacts for .EO sources?protected Set<String>
excludeBinaries
List of exclusion GLOB filters for finding class files.protected File
foreign
File with foreign "tojos".protected String
foreignFormat
Format of "foreign" file ("json" or "csv").protected boolean
ignoreTransitive
Fail resolution process on transitive dependencies.protected boolean
ignoreVersionConflicts
Fail resolution process on conflicting dependencies.protected Set<String>
includeBinaries
List of inclusion GLOB filters for finding class files.protected org.apache.maven.plugin.BuildPluginManager
manager
Maven plugin manager.protected boolean
offline
If we are offline and not able to download anything from the internet.protected boolean
overWrite
Pull again even if the .eo file is already present?protected boolean
placeBinariesThatHaveSources
Place only binaries that have EO sources inside jar.protected File
placed
The path to a text file where paths of all added .class (and maybe others) files are placed.protected String
placedFormat
Format of "placed" file ("json" or "csv").protected PlacedTojos
placedTojos
Placed tojos.protected org.apache.maven.plugin.descriptor.PluginDescriptor
plugin
The current version of eo-maven-plugin.protected org.apache.maven.project.MavenProject
project
Maven project.protected boolean
rewriteBinaries
Rewrite binaries in output directory or not.protected String
scope
Current scope (either "compile" or "test").protected org.apache.maven.execution.MavenSession
session
Maven session.protected boolean
skipZeroVersions
Skip artifact with the version 0.0.0.protected File
sourcesDir
Directory in which .eo files are located.protected String
tag
The Git tag to pull objects from, in objectionary.protected File
targetDir
Target directory.protected Integer
timeout
Mojo execution timeout in seconds.protected boolean
trackTransformationSteps
Track optimization steps into intermediate XMIR files?protected File
transpiled
The path to a text file where paths of generated java files per EO program.protected String
transpiledFormat
Format of "transpiled" file ("json" or "csv").protected TranspiledTojos
transpiledTojos
Cached transpiled tojos.protected boolean
unrollExitError
If set to TRUE, the exception on exit will be printed in details to the log.protected boolean
withRuntimeDependency
Add eo-runtime dependency to the classpath.protected File
xslMeasures
The path of the file where XSL measurements (time of execution in milliseconds) will be stored.
-
Constructor Summary
Constructors Constructor Description TranspileMojo()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ForeignTojos
compileTojos()
Tojos to use, in "compile" scope only.void
exec()
void
execute()
Execute it.protected com.yegor256.xsline.Train<com.yegor256.xsline.Shift>
measured(com.yegor256.xsline.Train<com.yegor256.xsline.Shift> train)
Make a measured train from another train.protected ForeignTojos
scopedTojos()
Tojos to use, in my scope only.String
toString()
-
-
-
Field Detail
-
project
@Parameter(defaultValue="${project}", readonly=true) protected org.apache.maven.project.MavenProject project
Maven project.
-
session
@Parameter(defaultValue="${session}", readonly=true) protected org.apache.maven.execution.MavenSession session
Maven session.
-
manager
@Component protected org.apache.maven.plugin.BuildPluginManager manager
Maven plugin manager.
-
classesDir
@Parameter(defaultValue="${project.build.directory}/classes", readonly=true, required=true) protected File classesDir
Directory where classes are stored in target.
-
foreign
@Parameter(property="eo.foreign", required=true, defaultValue="${project.build.directory}/eo-foreign.csv") protected File foreign
File with foreign "tojos".
-
foreignFormat
@Parameter(property="eo.foreignFormat", required=true, defaultValue="csv") protected String foreignFormat
Format of "foreign" file ("json" or "csv").
-
sourcesDir
@Parameter(property="eo.sourcesDir", required=true, defaultValue="${project.basedir}/src/main/eo") protected File sourcesDir
Directory in which .eo files are located.
-
targetDir
@Parameter(property="eo.targetDir", required=true, defaultValue="${project.build.directory}/eo") protected File targetDir
Target directory.
-
scope
@Parameter(property="eo.scope") protected String scope
Current scope (either "compile" or "test").
-
placed
@Parameter(property="eo.placed", required=true, defaultValue="${project.build.directory}/eo-placed.csv") protected File placed
The path to a text file where paths of all added .class (and maybe others) files are placed.- Since:
- 0.11.0
-
placedFormat
@Parameter(property="eo.placedFormat", required=true, defaultValue="json") protected String placedFormat
Format of "placed" file ("json" or "csv").
-
transpiled
@Parameter(property="eo.transpiled", required=true, defaultValue="${project.build.directory}/eo-transpiled.csv") protected File transpiled
The path to a text file where paths of generated java files per EO program.- Since:
- 0.11.0
-
xslMeasures
@Parameter(property="eo.xslMeasuresFile", required=true, defaultValue="${project.build.directory}/eo/xsl-measures.csv") protected File xslMeasures
The path of the file where XSL measurements (time of execution in milliseconds) will be stored.- Since:
- 0.41.0
-
timeout
@Parameter(property="eo.timeout") protected Integer timeout
Mojo execution timeout in seconds.- Since:
- 0.28.12
-
transpiledFormat
@Parameter(property="eo.transpiledFormat", required=true, defaultValue="csv") protected String transpiledFormat
Format of "transpiled" file ("json" or "csv").
-
trackTransformationSteps
@Parameter(property="eo.trackTransformationSteps", required=true, defaultValue="false") protected boolean trackTransformationSteps
Track optimization steps into intermediate XMIR files?- Since:
- 0.24.0
-
unrollExitError
@Parameter(property="eo.unrollExitError") protected boolean unrollExitError
If set to TRUE, the exception on exit will be printed in details to the log.- Since:
- 0.29.0
-
cache
@Parameter(property="eo.cache") protected File cache
EO cache directory.
-
rewriteBinaries
@Parameter(property="eo.rewriteBinaries", defaultValue="true") protected boolean rewriteBinaries
Rewrite binaries in output directory or not.- Since:
- 0.32.0
-
offline
@Parameter(property="eo.offline", required=true, defaultValue="false") protected boolean offline
If we are offline and not able to download anything from the internet.- Since:
- 0.32.0
-
tag
@Parameter(property="eo.tag", required=true, defaultValue="master") protected String tag
The Git tag to pull objects from, in objectionary.- Since:
- 0.21.0
-
overWrite
@Parameter(property="eo.overWrite", required=true, defaultValue="false") protected boolean overWrite
Pull again even if the .eo file is already present?- Since:
- 0.10.0
-
skipZeroVersions
@Parameter(property="eo.skipZeroVersions", required=true, defaultValue="true") protected boolean skipZeroVersions
Skip artifact with the version 0.0.0.- Since:
- 0.9.0
-
placeBinariesThatHaveSources
@Parameter protected boolean placeBinariesThatHaveSources
Place only binaries that have EO sources inside jar.- Since:
- 0.31
-
ignoreVersionConflicts
@Parameter(property="eo.ignoreVersionConflicts", required=true, defaultValue="false") protected boolean ignoreVersionConflicts
Fail resolution process on conflicting dependencies.- Since:
- 0.1.0
-
discoverSelf
@Parameter(property="eo.discoverSelf", required=true, defaultValue="false") protected boolean discoverSelf
Shall we discover JAR artifacts for .EO sources?- Since:
- 0.12.0
-
includeBinaries
@Parameter protected Set<String> includeBinaries
List of inclusion GLOB filters for finding class files.- Since:
- 0.15
-
excludeBinaries
@Parameter protected Set<String> excludeBinaries
List of exclusion GLOB filters for finding class files.- Since:
- 0.15
-
withRuntimeDependency
@Parameter(property="eo.ignoreRuntime", required=true, defaultValue="true") protected boolean withRuntimeDependency
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 false. In any other cases, the eo-runtime dependency will be downloaded and added to the classpath automatically.
-
ignoreTransitive
@Parameter(property="eo.ignoreTransitive", required=true, defaultValue="false") protected boolean ignoreTransitive
Fail resolution process on transitive dependencies.
-
plugin
@Parameter(defaultValue="${plugin}", readonly=true) protected org.apache.maven.plugin.descriptor.PluginDescriptor plugin
The current version of eo-maven-plugin. Maven 3 only. You can read more about that property here.
-
placedTojos
protected final PlacedTojos placedTojos
Placed tojos.
-
transpiledTojos
protected final TranspiledTojos transpiledTojos
Cached transpiled tojos.
-
central
protected BiConsumer<org.apache.maven.model.Dependency,Path> central
The central.
-
-
Method Detail
-
exec
public void exec()
-
execute
public final void execute() throws org.apache.maven.plugin.MojoFailureException
Execute it.- Throws:
org.apache.maven.plugin.MojoFailureException
- If fails during build
-
scopedTojos
protected final ForeignTojos scopedTojos()
Tojos to use, in my scope only.- Returns:
- Tojos to use
-
compileTojos
protected final ForeignTojos compileTojos()
Tojos to use, in "compile" scope only.- Returns:
- Tojos to use
-
measured
protected final com.yegor256.xsline.Train<com.yegor256.xsline.Shift> measured(com.yegor256.xsline.Train<com.yegor256.xsline.Shift> train)
Make a measured train from another train.- Parameters:
train
- The train- Returns:
- Measured train
-
-