# -*- 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
PortGroup java 1.0

name            maven3
version         3.9.11
revision        0

categories      java devel
license         Apache-2
maintainers     {breun @breun} openmaintainer
platforms       any
supported_archs noarch

description     A Java-based build and project management environment.
long_description \
                Maven is a Java project management and project \
                comprehension tool.  Maven is based on the \
                concept of a project object model (POM) in that \
                all the artifacts produced by Maven are a result \
                of consulting a well defined model for your \
                project.  Builds, documentation, source metrics, \
                and source cross-references are all controlled by \
                your POM.  Maven 3 aims to ensure backward \
                compatibility with Maven 2, improve usability, \
                increase performance, allow safe embedding, and \
                pave the way to implement many highly demanded \
                features.

homepage        https://maven.apache.org/

master_sites    apache:maven/maven-3/${version}/binaries
distname        apache-maven-${version}-bin
worksrcdir      apache-maven-${version}

checksums       rmd160  0a30b36c6d19c3f2453aa48c99eb5c77d795c7ae \
                sha256  4b7195b6a4f5c81af4c0212677a32ee8143643401bc6e1e8412e6b06ea82beac \
                size    9160848

java.version    1.8+
java.fallback   openjdk21

depends_run     port:maven_select

use_configure   no

select.group    maven
select.file     ${filespath}/${name}

# Source builds of maven are not possible. So, the default build is a binary
# install of the jars.
build {
}

destroot {
    set mavendir ${destroot}${prefix}/share/java/${name}

    # Create the target java directory exists
    xinstall -m 755 -d ${mavendir}

    # Copy over the needed elements of our directory tree
    file copy \
        ${worksrcpath}/bin \
        ${worksrcpath}/boot \
        ${worksrcpath}/conf \
        ${worksrcpath}/lib \
        ${mavendir}

    # Reduce the permissions on the distribution files.
    file attributes ${mavendir}/conf -permissions 0755
    file attributes ${mavendir}/conf/settings.xml -permissions 0644
    foreach f [glob -directory ${mavendir}/boot *.jar] {
        file attributes $f -permissions 0644
    }
    foreach f [glob -directory ${mavendir}/lib *.jar] {
        file attributes $f -permissions 0644
    }

    # Symlink maven into the bin directory
    ln -s ../share/java/${name}/bin/mvn ${destroot}${prefix}/bin/mvn3
    ln -s ../share/java/${name}/bin/mvnDebug ${destroot}${prefix}/bin/mvnDebug3
}

notes \
"- To make maven $version the default, please run: sudo port select --set ${select.group} ${name}
- To add bash completions, install port maven-completion"

livecheck.type  regex
livecheck.url   ${homepage}docs/history.html
livecheck.regex >(3\\.\[0-9.\]+\\.\[0-9.\]+)</
