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 <[email protected]> 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 _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

