# Maintainer: Luke Shumaker # Maintainer (Arch): Sergej Pupykin # Contributor (Arch): William Rea pkgname=maven pkgver=3.3.9 pkgdesc="A Java project management and project comprehension tool" url="http://maven.apache.org" license=('Apache') replaces=('maven-libre') conflicts=('maven-libre') pkgrel=1.parabola2 arch=('any') options=(!emptydirs) conflicts=('maven') depends=('java-environment' 'sh') makedepends=('apache-ant' 'jh' 'imake' java-animal-sniffer java-antlr2 java-asm java-asm3 java-commons-codec java-commons-io java-commons-lang java-commons-logging java-hamcrest java-xml-commons-external jna junit mockito objenesis slf4j xerces2-java ) 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 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-compile 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=('030ce5b3d369f01aca6249b694d4ce03' '58820067a4d7384477daa134023d9b57' 'e2bbdeffed100cd51d05b2ba8ebd6321')