diff --git a/README.adoc b/README.adoc new file mode 100644 index 00000000..fc148ba2 --- /dev/null +++ b/README.adoc @@ -0,0 +1,79 @@ += 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! diff --git a/README.md b/README.md deleted file mode 100644 index d89c8c3a..00000000 --- a/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# 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 - -``` -git clone https://github.com/gnodet/mvnd.git -cd mvnd -mvn package -``` - -## Configuring - -``` -export PATH=[mvn-root]/daemon/target/maven-distro/bin:$PATH -``` - -## Usage - -``` -mvnd install -``` - -This project is still in prototype mode, so feedback is most welcomed !