diff options
Diffstat (limited to 'java/maven/PKGBUILD')
-rw-r--r-- | java/maven/PKGBUILD | 107 |
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') |