Install this version:
emerge -a =dev-java/maven-bin-3.10.0
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =dev-java/maven-bin-3.10.0
Or alternatively:
emerge --autounmask-write -a =dev-java/maven-bin-3.10.0
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 3.10.0 | 9 | ~amd64 | 3.10 |
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=9
inherit java-pkg-2 verify-sig
MY_PN=apache-${PN%%-bin}
MY_PV=${PV/_alpha/-alpha-}
MY_P="${MY_PN}-${MY_PV}"
MY_MV="${PV%%.*}"
DESCRIPTION="Project Management and Comprehension Tool for Java"
HOMEPAGE="https://maven.apache.org/"
SRC_URI="mirror://apache/maven/maven-${MY_MV}/${PV}/binaries/${MY_P}-bin.tar.gz
verify-sig? ( mirror://apache/maven/maven-${MY_MV}/${PV}/binaries/${MY_P}-bin.tar.gz.asc )"
S="${WORKDIR}/${MY_P}"
LICENSE="Apache-2.0"
SLOT="3.10"
KEYWORDS="~amd64"
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-apache-maven-20260421:0 )"
# Min jre-25 because of "Incorrect bytecode found" with jre-1.8
# debug: java-pkg_append_: entering function, parameters:
# JAVA_PKG_CLASSPATH //usr/share/maven-bin-3.10/lib/jline-terminal-3.30.17.jar
# version 22 (expected 1.8)
DEPEND="
>=virtual/jdk-25:*
app-eselect/eselect-java"
RDEPEND="
>=virtual/jre-25:*"
MAVEN="${PN}-${SLOT}"
MAVEN_SHARE="/usr/share/${MAVEN}"
QA_FLAGS_IGNORED=(
"${MAVEN_SHARE}/lib/jansi-native/linux32/libjansi.so"
"${MAVEN_SHARE}/lib/jansi-native/linux64/libjansi.so"
"${MAVEN_SHARE}/lib/jline-native/FreeBSD/x86/libjlinenative.so"
"${MAVEN_SHARE}/lib/jline-native/FreeBSD/x86_64/libjlinenative.so"
"${MAVEN_SHARE}/lib/jline-native/Linux/x86/libjlinenative.so"
"${MAVEN_SHARE}/lib/jline-native/Linux/arm64/libjlinenative.so"
"${MAVEN_SHARE}/lib/jline-native/Linux/armv6/libjlinenative.so"
"${MAVEN_SHARE}/lib/jline-native/Linux/x86_64/libjlinenative.so"
"${MAVEN_SHARE}/lib/jline-native/Linux/ppc64/libjlinenative.so"
"${MAVEN_SHARE}/lib/jline-native/Linux/arm/libjlinenative.so"
"${MAVEN_SHARE}/lib/jline-native/Linux/armv7/libjlinenative.so"
)
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/apache-maven.asc"
src_prepare() {
java-pkg-2_src_prepare
rm -r lib/jline-native/{Windows,FreeBSD} || die "Windows,FreeBSD"
local JLINE="lib/jline-native/Linux"
use amd64 || rm -r "${JLINE}"/x86_64 || die "arm"
use arm || rm -r "${JLINE}"/arm{,v6,v7} || die "arm"
use arm64 || rm -r "${JLINE}"/arm64 || die "arm64"
use ppc64 || rm -r "${JLINE}"/ppc64 || die "ppc64"
use x86 || rm -r "${JLINE}"/x86 || die "x86"
}
# TODO:
# We should use jars from packages, instead of what is bundled.
src_install() {
dodir "${MAVEN_SHARE}"
cp -Rp bin boot conf lib "${ED}/${MAVEN_SHARE}" || die "failed to copy"
java-pkg_regjar "${ED}/${MAVEN_SHARE}"/boot/*.jar
java-pkg_regjar "${ED}/${MAVEN_SHARE}"/lib/*.jar
dodoc NOTICE README.txt
dosym -r "${MAVEN_SHARE}/bin/mvn" "/usr/bin/mvn-${SLOT}"
# See bug #342901.
echo "CONFIG_PROTECT=\"${MAVEN_SHARE}/conf\"" > "${T}/25${MAVEN}" || die
doenvd "${T}/25${MAVEN}"
}
pkg_postinst() {
eselect maven update mvn-${SLOT}
}
pkg_postrm() {
eselect maven update
}
| Mirror Name | URLs |
|---|---|
| apache |
>=virtual/jdk-25:* app-eselect/eselect-java
>=virtual/jre-25:*
verify-sig? ( >=sec-keys/openpgp-keys-apache-maven-20260421:0 )
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | apache-maven-3.10.0-bin.tar.gz | 9979885 bytes | mirror://apache/maven/maven-3/3.10.0/binaries/apache-maven-3.10.0-bin.tar.gz |
| DIST | apache-maven-3.10.0-bin.tar.gz.asc | 228 bytes | mirror://apache/maven/maven-3/3.10.0/binaries/apache-maven-3.10.0-bin.tar.gz.asc |