Files

86 lines
3.5 KiB
Tcl

# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
PortGroup select 1.0
version 1.0.6
revision 0
name mvnd1
categories java
platforms {darwin any}
maintainers {breun @breun} openmaintainer
license Apache-2
description mvnd 1 -- The Maven Daemon based on Apache Maven 3
long_description mvnd aims at providing faster Maven builds using techniques known from Gradle and Takari.\
\n\
\n* mvnd embeds Maven (so there is no need to install Maven separately).\
\n* The actual builds happen inside a long living background process, a.k.a. daemon.\
\n* One daemon instance can serve multiple consecutive requests from the mvnd client.\
\n* The mvnd client is a native executable built using GraalVM.\
It starts faster and uses less memory compared to starting a traditional JVM.\
\n* Multiple daemons can be spawned in parallel if there is no idle daemon to serve a build request.\
\n* The JVM for running the actual builds does not need to get started anew for each build.\
\n* The classloaders holding classes of Maven plugins are cached over multiple builds.\
The plugin jars are thus read and parsed just once. SNAPSHOT versions of Maven plugins are not cached.\
\n* The native code produced by the Just-In-Time (JIT) compiler inside the JVM is kept too.\
Compared to stock Maven, less time is spent by the JIT compilation.\
During the repeated builds the JIT-optimized code is available immediately.\
This applies not only to the code coming from Maven plugins and Maven Core,\
but also to all code coming from the JDK itself.
homepage https://github.com/apache/maven-mvnd
supported_archs x86_64 arm64
master_sites https://archive.apache.org/dist/maven/mvnd/${version}/
depends_run port:mvnd_select
use_configure no
select.group mvnd
select.file ${filespath}/${name}
if {${configure.build_arch} eq "x86_64"} {
set arch_classifier amd64
checksums rmd160 0384f16a91214228cb60cb5e28831c7db61ca58b \
sha256 8202c79bad529d519461b61d8db3f17de5731d3b47b45d294d4df84b346555ed \
size 23490551
} elseif {${configure.build_arch} eq "arm64"} {
set arch_classifier aarch64
checksums rmd160 89c8ed780c73d4a966d6b201defb946cee4429cd \
sha256 371f008b91ff6ec54e960935974f3868ee7f18195a0ec874940d58353d8b2796 \
size 23613514
} else {
set arch_classifier unsupported_arch
}
distname maven-mvnd-${version}-darwin-${arch_classifier}
build {}
destroot {
set target ${prefix}/share/java/${name}
set dest_target ${destroot}${target}
# Create the target directory in the destroot
xinstall -m 755 -d ${dest_target}
# Copy files into destroot
foreach f [glob -directory ${worksrcpath} *] {
copy ${f} ${dest_target}
}
# Remove files that are not needed on macOS
delete ${dest_target}/bin/mvnd.cmd
# Create launch script
set launch_script [open ${destroot}${prefix}/bin/${name} w 0755]
puts $launch_script "${target}/bin/mvnd $@"
close $launch_script
}
notes \
"- To make mvnd $version the default, please run: sudo port select --set ${select.group} ${name}"