Plugin Documentation
This report describes goals, parameters details, requirements and sample usage of this plugin.
Goals
Goals available for this plugin:
Goal | Description |
---|---|
hone:build | Build Docker image.
This goal must be used only if you want to build a local custom Docker image for your project. This may be useful when you don't have network access to Docker Hub. In most cases, you have it and that's why don't need this goal. Instead, just use the pull goal, which will simply pull a required Docker image from the Hub. This goal is mostly for testing and CI/CD. |
hone:help | Display help information on hone-maven-plugin.
Call mvn hone:help -Ddetail=true -Dgoal=<goal-name> to display parameter details. |
hone:optimize | Converts Bytecode to Bytecode in order to make it faster.
This goal takes every .class file from the target/classes/ directory, converts it to .xmir format (which is XML representation of EO), then converts .xmir to .phi (which is 𝜑-calculus), then optimizes it via eo-phi-normalizer, and then back to .xmir and to .class. As a result, you obtain optimized Bytecode in the target/classes/ directory, which supposedly works faster than before. The entire optimization pipeline happens inside Docker container, which is run from the image specified in the image parameter. The image may either be pulled or built locally. We recommend pulling it from the Docker Hub with the help of the pull goal. Also, we recommend deleting the image after optimization is done, with the help of the rmi goal. |
hone:pull | Pull Docker image from Docker Hub.
This goal pulls Docker image from Docker Hub to your machine. You may skip this goal and simply use the optimize goal, which will automatically pull the image from the Hub. However, it would be cleaner to use pull, then optimize, and then rmi (which deletes the image from your machine). |
hone:rmi | Remove Docker image.
This goal deletes Docker image from your machine, in order to save space and simply clean up after the optimization step. You may not use this goal at all, but we recommend to use it. |
System Requirements
The following specifies the minimum requirements to run this Maven plugin:
Maven | 3.9.9 |
JDK | 11 |
System Requirements History
The following specifies the minimum requirements to run this Maven plugin for historical versions:
Plugin Version | Maven | JDK |
---|---|---|
from 0.0.1 to 0.0.17 | - | 11 |
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>hone-maven-plugin</artifactId> <version>0.0.17</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.eolang</groupId> <artifactId>hone-maven-plugin</artifactId> </plugin> ... </plugins> </build> ... </project>
For more information, see "Guide to Configuring Plug-ins"