summaryrefslogtreecommitdiff
path: root/java/maven/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'java/maven/PKGBUILD')
-rw-r--r--java/maven/PKGBUILD107
1 files changed, 107 insertions, 0 deletions
diff --git a/java/maven/PKGBUILD b/java/maven/PKGBUILD
new file mode 100644
index 000000000..3f8e5071d
--- /dev/null
+++ b/java/maven/PKGBUILD
@@ -0,0 +1,107 @@
+# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+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<localRepository>$_M2_LOCALREPO</localRepository>" \
+ < "$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')