[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