[maven-debian-helper] 15/21: Generate maven metadata when copying maven repo for building

Emmanuel Bourg ebourg-guest at moszumanska.debian.org
Fri Nov 13 15:05:47 UTC 2015


This is an automated email from the git hooks/post-receive script.

ebourg-guest pushed a commit to branch maven-debian-helper-2.0
in repository maven-debian-helper.

commit 070f9e1bbbab15c08e461b614cd1b204184add56
Author: Andrew Schurman <arcticwaters at gmail.com>
Date:   Tue Apr 7 13:04:01 2015 -0700

    Generate maven metadata when copying maven repo for building
---
 debian/control                         |  4 +-
 share/cdbs/1/class/maven-vars.mk       |  2 +-
 share/maven-debian-helper/copy-repo.sh | 93 ++++++++++++++++++++++++----------
 3 files changed, 69 insertions(+), 30 deletions(-)

diff --git a/debian/control b/debian/control
index fd2f525..cf23ce4 100644
--- a/debian/control
+++ b/debian/control
@@ -30,7 +30,9 @@ Depends: ${misc:Depends}, default-jdk, maven-repo-helper (>= 1.8.9), maven (>= 3
          libmaven-site-plugin-java,
          libplexus-velocity-java,
          libsurefire-java,
-         velocity
+         libxml2-utils,
+         velocity,
+         unzip
 Suggests: libmaven-javadoc-plugin-java, apt-file, devscripts, subversion
 Description: Helper tools for building Debian packages with Maven
  maven-debian-helper is a set of tools used to generate Debian packages from
diff --git a/share/cdbs/1/class/maven-vars.mk b/share/cdbs/1/class/maven-vars.mk
index 6959e86..299d5ad 100644
--- a/share/cdbs/1/class/maven-vars.mk
+++ b/share/cdbs/1/class/maven-vars.mk
@@ -107,7 +107,7 @@ DEB_MAVEN_BUILD_TARGET = package
 DEB_MAVEN_INSTALL_TARGET = org.debian.maven:debian-maven-plugin:$(MAVEN_DEBIAN_VERSION):install
 DEB_MAVEN_CHECK_TARGET =
 DEB_MAVEN_CLEAN_TARGET = clean
-DEB_MAVEN_DOC_TARGET = org.apache.maven.plugins:maven-javadoc-plugin:jar
+DEB_MAVEN_DOC_TARGET = javadoc:jar
 DEB_MAVEN_INSTALL_DOC_TARGET = org.debian.maven:debian-maven-plugin:$(MAVEN_DEBIAN_VERSION):install-doc
 
 endif
diff --git a/share/maven-debian-helper/copy-repo.sh b/share/maven-debian-helper/copy-repo.sh
index 3e2e0cd..ee26747 100755
--- a/share/maven-debian-helper/copy-repo.sh
+++ b/share/maven-debian-helper/copy-repo.sh
@@ -18,11 +18,21 @@ set -e
 
 SRC_REPO="/usr/share/maven-repo"
 DEST_REPO="$1/maven-repo"
+PLUGIN_GROUPS="org.apache.maven.plugins org.codehaus.mojo"
+METADATA_NAME="maven-metadata-local.xml"
 
 find_src_poms() {
   find -L $SRC_REPO -name '*.pom' -printf '%P\n'
 }
 
+find_group_artifact_ids() {
+  find -L $SRC_REPO/$1/* -type d -prune -printf '%f\n'
+}
+
+read_maven_plugin_xpath() {
+  unzip -q -c "$1" META-INF/maven/plugin.xml 2>/dev/null | xmllint --xpath "$2" - 2>/dev/null
+}
+
 list_fakes()
 {
   CONFFILES="/etc/maven/fake-poms.conf"
@@ -33,29 +43,6 @@ list_fakes()
   sed -e's,#.*,,' $CONFFILES
 }
 
-find_all_meta() {
-  find $DEST_REPO -name 'maven-metadata-tmp.xml'
-}
-
-header() {
-  echo '<?xml version="1.0" encoding="UTF-8"?>'
-  echo '<metadata>'
-  echo '  <versioning>'
-  echo '    <versions>'
-}
-
-footer() {
-  echo '    </versions>'
-  echo '  </versioning>'
-  echo '</metadata>'
-}
-
-echo_meta() {
-  header
-  cat $META
-  footer
-}
-
 if [ -z "$1" ]; then
   echo "ABORT: missing destination dir"
   exit 1
@@ -99,9 +86,59 @@ do
 .EOF
 done
 
-find_all_meta | while read META; do
-  DIR=$(dirname $META)
-  echo_meta > $DIR/maven-metadata-local.xml
-  rm -f $META
-done
+# construct plugin metadata
+for groupId in $PLUGIN_GROUPS; do
+  GROUP=$(echo $groupId | tr . \/)
+  if test ! -d "$DEST_REPO/$GROUP"; then
+    continue
+  fi
 
+  # plugin group metadata
+  cat > $DEST_REPO/$GROUP/$METADATA_NAME <<EOF
+<metadata>
+  <plugins>
+EOF
+  find_group_artifact_ids $GROUP | while read artifactId; do
+    for jar in $SRC_REPO/$GROUP/$artifactId/*/*.jar; do
+	  prefix=$(read_maven_plugin_xpath "$jar" '/plugin/goalPrefix/text()')
+      if test -z "$prefix"; then
+        continue
+      fi
+      name=$(read_maven_plugin_xpath "$jar" '/plugin/name/text()')
+      cat >> $DEST_REPO/$GROUP/$METADATA_NAME <<EOF
+    <plugin>
+      <name>$name</name>
+      <prefix>$prefix</prefix>
+      <artifactId>$artifactId</artifactId>
+    </plugin>
+EOF
+      break
+    done
+  done
+  cat >> $DEST_REPO/$GROUP/$METADATA_NAME <<EOF
+  </plugins>
+</metadata>
+EOF
+
+  # plugin version metadata
+  find_group_artifact_ids $GROUP | while read artifactId; do
+    cat > $DEST_REPO/$GROUP/$artifactId/$METADATA_NAME <<EOF
+<metadata>
+  <groupId>$groupId</groupId>
+  <artifactId>$artifactId</artifactId>
+  <versioning>
+    <versions>
+EOF
+    find $SRC_REPO/$GROUP/$artifactId/*/*.jar | while read jar; do
+      version=$(basename $(dirname $jar))
+      cat >> $DEST_REPO/$GROUP/$artifactId/$METADATA_NAME <<EOF
+      <version>$version</version>
+EOF
+    done
+    cat >> $DEST_REPO/$GROUP/$artifactId/$METADATA_NAME <<EOF
+    </versions>
+  </versioning>
+</metadata>
+EOF
+  done
+done

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/maven-debian-helper.git



More information about the pkg-java-commits mailing list