Plugin Details
This report describes goals, parameters details, requirements and sample usage of this plugin.
Goals
Goals available for this plugin:
| Goal | Description |
|---|---|
| eo:assemble | Pull all necessary EO XML files from Objectionary and parse them all.
This goal combines |
| eo:clean | Implementation of maven clean plugin, just deleting target/eo directory.
This goal simply deletes the directory containing all the files used for compilation. |
| eo:compile | Compile and lint all EO files.
This goal combines |
| eo:help | Display help information on eo-maven-plugin.
Call mvn eo:help -Ddetail=true -Dgoal=<goal-name> to display parameter details. |
| eo:lint | 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 |
| eo:parse | Parse EO to XML.
This is the initial goal that parses all found EO sources to XMIRs. You can read more about XMIR format here The goal scans all the EO sources registered in the foreign file catalog (see |
| eo:place | Take binary files from where MjResolve placed them and copy to the target/classes directory.
Input directory is See also: Place catalog |
| eo:print | Print XMIR to EO.
This goal goes through all XMIR sources found in the specified directory, converts them back to EO format, and saves the resulting EO files in the specified output directory, preserving the original directory structure. Input XMIR files are found in |
| eo:probe | Go through all `probe` and `also` metas in XMIR files, try to locate the objects pointed by `probe` in Objectionary, and if found, register them in the catalog. More about the purpose of this Mojo is in this issue.
This goal just modifies the "foreign" catalog by adding newly discovered objects to it. It does not download or pull the sources of these objects, that is the job of |
| eo:pull | Pull EO files from Objectionary.
This goal goes through all objects from "foreign" catalog and looks for those without sources and pulls them from Objectionary remote repository. The pulled sources are stored in the |
| eo:register | Find and register all .eo sources in the "foreign" catalog.
This goal scans the |
| eo:resolve | Find all required runtime dependencies, download them from Maven Central, unpack and place to the target/eo directory.
The motivation for this mojo is simple: Maven doesn't have a mechanism for adding .JAR files to transpile/test classpath in runtime. This goal goes through all dependencies found in the |
| eo:transpile | Transpile.
This Maven Mojo class transpiles XMIR files into Java source files. The goal of this class is to automate the process of transforming EO intermediate representations (XMIRs) into Java code, optimize the output, and integrate the results into the Maven build lifecycle for further processing. This is one of the final goals that transpiles XMIRs to Java files generated by |
| eo:unplace | It deletes binary files, which were previously copied by "place" mojo so these binaries are not got into result JAR. |
| eo:unspile | Goes through all .class files and deletes those that were created from autogenerated sources so these binaries are not got into result JAR. |
System Requirements
The following specifies the minimum requirements to run this Maven plugin:
| Maven | 3.9.15 |
| JDK | 17 |
System Requirements History
The following specifies the minimum requirements to run this Maven plugin for historical versions:
| Plugin Version | Maven | JDK |
|---|---|---|
| from 0.45.0 to 0.60.0 | - | 11 |
| from 0.1 to 0.44.0 | - | 8 |
Usage
You should specify the version in your project's plugin configuration:
<project>
...
<build>
<!-- To define the plugin version in your parent POM -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eolang</groupId>
<artifactId>eo-maven-plugin</artifactId>
<version>0.61.0</version>
</plugin>
...
</plugins>
</pluginManagement>
<!-- To use the plugin goals in your POM or parent POM -->
<plugins>
<plugin>
<groupId>org.eolang</groupId>
<artifactId>eo-maven-plugin</artifactId>
</plugin>
...
</plugins>
</build>
...
</project>
For more information, see "Guide to Configuring Plug-ins"