# Maintainer: Luke Shumaker # Maintainer (Arch): Sergej Pupykin # Contributor: William Rea pkgname=maven pkgver=3.0.5 pkgdesc="A Java project management and project comprehension tool" url="http://maven.apache.org" license=('Apache') replaces=('maven-libre') conflicts=('maven-libre') pkgrel=1 arch=('any') options=(!emptydirs) conflicts=('maven') depends=('java-environment' 'sh') makedepends=('apache-ant' 'jh' 'imake' java-antlr2 java-asm3 ) backup=('etc/maven/settings.xml') _mirror=http://archive.apache.org/dist source=($_mirror/maven/maven-${pkgver%%.*}/$pkgver/source/apache-maven-$pkgver-src.tar.gz maven.sh maven.csh) _setup_env() { unset _JAVA_OPTIONS . /etc/profile.d/jre.sh . /etc/profile.d/jdk.sh export MAVEN_OPTS=-Xmx512m export M2_HOME="$pkgdir"/opt/maven export PATH="$PATH:$M2_HOME/bin" _M2_LOCALREPO=$(jh mvn-localrepo) ant_args=( -Dmaven.repo.local="$srcdir"/maven.repo.local ) } prepare() { if type mvn &>/dev/null; then error "maven cannot be built while an existing version is installed" return 1 fi } build() ( _setup_env install -d "$srcdir"/maven.repo.local lndir "$_M2_LOCALREPO" "$srcdir"/maven.repo.local cd "$srcdir"/apache-maven-$pkgver # FIXME: downloads makedepends from the Internet. Add them to makedepends=() ant "${ant_args[@]}" maven-assembly 2>&1|tee "$srcdir"/ant-log.txt < "$srcdir"/ant-log.txt \ sed -nr 's/.*Download(ed|ing):\s*//p' | \ sed 's/ .*//' | \ sed -r -e 's|^http://repo.maven.apache.org/maven2/||' -e 's/\.(jar|pom)$//' | \ sort -u > "$srcdir"/downloaded-artifacts.txt ) package() ( _setup_env cd "$srcdir"/apache-maven-$pkgver ant "${ant_args[@]}" extract-assembly #rm "$pkgdir"/opt/maven/*.txt # Install config file in /etc # Unlike the other directories, we symlink from the system to /opt/maven # because that way all conf files stay in /etc install -d "$pkgdir"/etc/maven sed "55i$_M2_LOCALREPO" \ < "$pkgdir"/opt/maven/conf/settings.xml \ > "$pkgdir"/etc/maven/settings.xml rm -rf "$pkgdir"/opt/maven/conf ln -s /etc/maven "$pkgdir"/opt/maven/conf # Install profile.d settings install -d "$pkgdir"/etc/profile.d install -m 755 "$srcdir"/maven.{csh,sh} "$pkgdir"/etc/profile.d # Link executables to /usr/bin install -d "$pkgdir"/usr/bin ln -s /opt/maven/bin/{mvn,mvnDebug,mvnyjp} "$pkgdir"/usr/bin # Link jar files to appropriate place in /usr/share install -d "$pkgdir"/usr/share/java ln -s /opt/maven/lib "$pkgdir"/usr/share/java/maven # Install the local repo mkdir -p "$pkgdir"${_M2_LOCALREPO%/*} cp -a "$srcdir"/maven.repo.local "$pkgdir"$_M2_LOCALREPO # Remove extra artifacts find "$pkgdir"$_M2_LOCALREPO -type l -delete find "$pkgdir"$_M2_LOCALREPO -name _maven.repositories -delete cat "$srcdir"/downloaded-artifacts.txt | while read artifact; do rm -f "$pkgdir"$_M2_LOCALREPO/$artifact* done ) md5sums=('b88becd8fe5a9665191e05945942db64' '58820067a4d7384477daa134023d9b57' 'e2bbdeffed100cd51d05b2ba8ebd6321')