mirror of
https://github.com/apache/maven-mvnd.git
synced 2025-09-27 07:55:25 +00:00
80 lines
2.3 KiB
Plaintext
80 lines
2.3 KiB
Plaintext
= mvnd: Maven Daemon
|
|
|
|
The mvnd project aims to provide a daemon infrastructure for maven based builds. It borrows techniques from Gradle and Takari to provide a simple and efficient system.
|
|
|
|
== Building
|
|
|
|
[source,shell]
|
|
----
|
|
git clone https://github.com/gnodet/mvnd.git
|
|
cd mvnd
|
|
mvn package
|
|
----
|
|
|
|
== Configuring
|
|
|
|
[source,shell]
|
|
----
|
|
export PATH=[mvnd-source-root]/daemon/target/maven-distro/bin:$PATH
|
|
----
|
|
|
|
== Usage
|
|
|
|
[source,shell]
|
|
----
|
|
mvnd install
|
|
----
|
|
|
|
== Native `mvnd` client
|
|
|
|
Prerequisites:
|
|
|
|
* Download and unpack GraalVM CE from https://github.com/graalvm/graalvm-ce-builds/releases[GitHub]
|
|
* Set `GRAALVM_HOME` to where you unpacked GraalVM in the previous step
|
|
* `$GRAALVM_HOME/bin/gu install native-image`
|
|
|
|
Build the native mvnd client
|
|
|
|
[source,shell]
|
|
----
|
|
$ cd mvnd/client
|
|
$ mvn clean package -Pnative
|
|
...
|
|
$ file target/mvnd
|
|
target/mvnd: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=93a554f3807550a13c986d2af9a311ef299bdc5a, for GNU/Linux 3.2.0, with debug_info, not stripped
|
|
$ ls -lh target/mvnd
|
|
-rwxrwxr-x. 1 ppalaga ppalaga 14M Jun 2 13:23 target/mvnd
|
|
----
|
|
|
|
Install the native `mvnd` client:
|
|
|
|
* Add the `target/mvnd` binary to `PATH` or copy it to `~/bin` or some other location already included in `PATH`
|
|
* Take care that the `mvnd` binary has a higher precendence than the `mvnd` shell script in the `bin` directory of
|
|
the Maven Daemon distribution.
|
|
* Create `~/.m2/mvnd.properties` with the following content:
|
|
+
|
|
[source,properties]
|
|
----
|
|
# An absolute path to your Maven Daemon installation
|
|
maven.home = [mvnd-source-root]/mvnd/daemon/target/maven-distro
|
|
# java.home is optional if you have JAVA_HOME environment variable set
|
|
java.home = ...
|
|
----
|
|
|
|
Make sure the native `mvnd` client works:
|
|
|
|
[source,shell]
|
|
----
|
|
$ mvnd --version
|
|
Maven Daemon 0.1-SNAPSHOT (native)
|
|
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
|
|
Maven home: /home/ppalaga/orgs/mvnd/mvnd/daemon/target/maven-distro
|
|
Java version: 11.0.1, vendor: AdoptOpenJDK, runtime: /home/data/jvm/adopt-openjdk/jdk-11.0.1+13
|
|
Default locale: en_IE, platform encoding: UTF-8
|
|
OS name: "linux", version: "5.6.13-200.fc31.x86_64", arch: "amd64", family: "unix"
|
|
----
|
|
|
|
You sould see `(native)` in the first line of the output
|
|
|
|
This project is still in prototype mode, so feedback is most welcomed!
|