diff options
| author | Robert Gemmell <robbie@apache.org> | 2011-02-07 22:17:00 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2011-02-07 22:17:00 +0000 |
| commit | 527c6d224ef3facb92c1ecb15cc02fff69d1bf7d (patch) | |
| tree | 539a136f008b8d388384015f7c49b76ede29628f /qpid/java | |
| parent | eb8e7cf77d382f4233d01cd6c4f96acb3c68f390 (diff) | |
| download | qpid-python-527c6d224ef3facb92c1ecb15cc02fff69d1bf7d.tar.gz | |
QPID-1916: updates to allow creation of maven artifacts for client+common modules during the release process
Applied patches from Emmanuel Bourg <ebourg@apache.org>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1068178 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
| -rw-r--r-- | qpid/java/build.xml | 4 | ||||
| -rwxr-xr-x | qpid/java/genpom | 30 | ||||
| -rw-r--r-- | qpid/java/lib/maven-ant-tasks-2.1.1.jar | bin | 0 -> 1314262 bytes | |||
| -rw-r--r-- | qpid/java/module.xml | 44 |
4 files changed, 71 insertions, 7 deletions
diff --git a/qpid/java/build.xml b/qpid/java/build.xml index 6ed2992a68..9031166d76 100644 --- a/qpid/java/build.xml +++ b/qpid/java/build.xml @@ -66,6 +66,10 @@ <iterate target="pom"/> </target> + <target name="release-mvn" description="Install the artifacts into the local repository"> + <iterate target="release-mvn"/> + </target> + <target name="compile" description="compile sources"> <iterate target="compile"/> </target> diff --git a/qpid/java/genpom b/qpid/java/genpom index 92822a08ae..3974078556 100755 --- a/qpid/java/genpom +++ b/qpid/java/genpom @@ -32,6 +32,8 @@ parser.add_option("-a", "--artifact") parser.add_option("-v", "--version") parser.add_option("-d", "--description", default="") parser.add_option("-u", "--url", default="") +parser.add_option("-m", "--modules", help="modules dependencies") +parser.add_option("-p", "--prefix", help="prefix of the project's artifacts names") parser.add_option("-i", "--ignore", action="store_true", help="ignore missing poms") parser.add_option("-s", "--search-path", action="append", help="the path to search for poms") @@ -62,6 +64,9 @@ if opts.version is None: if opts.name is None and opts.artifact is None: die("one of name or artifact must be supplied") +if opts.prefix is not None: + opts.artifact = opts.prefix + "-" + opts.artifact + if opts.name is None: opts.name = opts.artifact @@ -90,6 +95,24 @@ for s in opts.scope: scopes[m.group(1)] = m.group(2) deps = [] +module_depends = [] +if opts.modules is not None: + module_depends = opts.modules.replace("/", "-").split(); + +for module in module_depends: + if opts.prefix is None: + artifactId = module + else: + artifactId = opts.prefix + "-" + module + + deps.append(""" + <dependency> + <groupId>%s</groupId> + <artifactId>%s</artifactId> + <version>%s</version> + </dependency> +""" % (opts.group, artifactId, opts.version)) + for jar in jars: base, ext = os.path.splitext(os.path.basename(jar)) pom = search(expanded_path, "%s.pom" % base) @@ -119,22 +142,27 @@ TEMPLATE = """<?xml version="1.0" encoding="UTF-8"?> <groupId>%(group)s</groupId> <artifactId>%(artifact)s</artifactId> <version>%(version)s</version> + <name>%(name)s</name> <url>%(url)s</url> <description>%(description)s</description> + <organization> <name>The Apache Software Foundation</name> <url>http://www.apache.org</url> </organization> + <licenses> <license> <name>The Apache Software License, Version 2.0</name> - <url>/LICENSE.txt</url> + <url>http://www.apache.org/licenses/LICENSE-2.0.html</url> </license> </licenses> + <dependencies> %(dependencies)s </dependencies> + </project> """ diff --git a/qpid/java/lib/maven-ant-tasks-2.1.1.jar b/qpid/java/lib/maven-ant-tasks-2.1.1.jar Binary files differnew file mode 100644 index 0000000000..7810a541b8 --- /dev/null +++ b/qpid/java/lib/maven-ant-tasks-2.1.1.jar diff --git a/qpid/java/module.xml b/qpid/java/module.xml index e05fdf0f14..474a1f1937 100644 --- a/qpid/java/module.xml +++ b/qpid/java/module.xml @@ -18,10 +18,15 @@ - under the License. - --> -<project name="module"> +<project name="module" xmlns:artifact="antlib:org.apache.maven.artifact.ant"> <import file="common.xml"/> + <path id="maven-ant-tasks.classpath" path="${project.root}/lib/maven-ant-tasks-2.1.1.jar" /> + <typedef resource="org/apache/maven/artifact/ant/antlib.xml" + uri="antlib:org.apache.maven.artifact.ant" + classpathref="maven-ant-tasks.classpath" /> + <map property="module" value="${basedir}" split="${path.separator}"> <globmapper from="${project.root}${file.separator}*" to="*"/> </map> @@ -74,6 +79,9 @@ <available property="module.etc.exists" file="${module.etc}"/> <available property="module.bin.exists" file="${module.bin}"/> + <property name="module.source.jar" + location="${build.lib}/${project.name}-${module.name}-${project.version}-sources.jar"/> + <!-- module.depends and module.test.depends are supplied by the importing file --> <property name="module.depends" value=""/> <property name="module.test.depends" value=""/> @@ -209,11 +217,11 @@ <target name="pom" depends="prepare" if="module.genpom"> <jython path="${mllib.dir}"> <args> - <arg line="${project.root}/genpom"/> - <arg line="-s ${project.root}/lib/poms"/> - <arg line="-o ${build}/${module.name}.pom"/> + <arg line='"${project.root}/genpom"'/> + <arg line='-s "${project.root}/lib/poms"'/> + <arg line='-o "${build}/qpid-${module.name}.pom"'/> <arg line="-g org.apache.qpid"/> - <arg line="-a ${module.name}"/> + <arg line="-a qpid-${module.name}"/> <arg line="-v ${project.version}"/> <arg line="${module.genpom.args}"/> <arg line="${module.libs}"/> @@ -221,6 +229,19 @@ </jython> </target> + <target name="release-mvn" depends="pom" if="module.genpom" description="Install the artifacts into the local repository and prepare the release"> + <antcall target="build"/> + + <artifact:pom id="module.pom" file="${build}/qpid-${module.name}.pom"/> + + <artifact:install file="${module.jar}" pomRefId="module.pom"/> + + <artifact:deploy file="${module.jar}" pomRefId="module.pom"> + <attach file="${module.source.jar}" classifier="sources"/> + <remoteRepository url="file://${module.release.base}/maven"/> + </artifact:deploy> + </target> + <target name="precompile"/> <target name="compile" depends="prepare,precompile" description="compile sources"> @@ -407,7 +428,7 @@ <target name="postbuild" description="run after a build"/> - <target name="build" depends="jar,jar-tests,libs,copy-bin,copy-etc,postbuild" description="compile and copy resources into build tree"/> + <target name="build" depends="jar,jar-tests,jar-sources,libs,copy-bin,copy-etc,postbuild" description="compile and copy resources into build tree"/> <target name="jar.manifest" depends="compile" if="module.manifest"> <jar destfile="${module.jar}" basedir="${module.classes}" manifest="${module.manifest}"/> </target> @@ -424,6 +445,17 @@ <jar destfile="${module.test.jar}" basedir="${module.test.classes}"/> </target> + <target name="jar-sources" depends="prepare" description="create sources jar"> + <jar destfile="${module.source.jar}"> + <fileset dir="${project.root}/resources"> + <include name="LICENSE"/> + <include name="NOTICE"/> + </fileset> + <fileset dir="${module.src}" includes="**/*.java"/> + <fileset dir="${module.precompiled}" includes="**/*.java"/> + </jar> + </target> + <target name="libs" description="copy dependencies into build tree"> <copylist todir="${build.lib}" dir="${project.root}" files="${module.libs}"/> </target> |
