diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2013-04-30 06:59:52 -0700 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2013-04-30 06:59:52 -0700 |
commit | 63070d253a571b1ce6039d4a9307ee80722d55d5 (patch) | |
tree | 36158f233852a354353eb4fcf8f72ce5a6c34793 /ant | |
parent | 368aa83b6ac9a38b9dfd183659b19cc1ba3947b3 (diff) |
Moved ivy targets to seperate file and used ivy for pom generation
Diffstat (limited to 'ant')
-rw-r--r-- | ant/build-common.xml | 38 | ||||
-rw-r--r-- | ant/ivy-common.xml | 57 |
2 files changed, 65 insertions, 30 deletions
diff --git a/ant/build-common.xml b/ant/build-common.xml index cb8ac05..23aba6b 100644 --- a/ant/build-common.xml +++ b/ant/build-common.xml @@ -1,7 +1,7 @@ <project name="build-common" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:artifact="antlib:org.apache.maven.artifact.ant"> - + <property name="src.dir" value="src" /> <property name="build.dir" value="build" /> @@ -13,9 +13,6 @@ <property name="compile.deprecation" value="false" /> <property name="compile.optimize" value="true" /> - <property name="maven.groupid" value="net.jesterpm" /> - <property name="maven.artifactid" value="${ant.project.name}" /> - <!-- CLASSPATHs --> <path id="classpath.build"> <fileset dir="${lib.dir}" /> @@ -25,22 +22,16 @@ <path location="${build.dir}/${build.classes}" /> </path> - <!-- Dependency Targets --> - <target name="resolve" description="Resolve Dependencies"> - <ivy:retrieve /> - </target> - - <target name="dep-report" depends="resolve" description="Generate Dependency Report"> - <ivy:report todir="${build.dir}" /> - </target> - <!-- Building/Running Targets --> - <target name="prepare" description="Create the build directories"> + + <!-- Create the build directories --> + <target name="prepare"> <mkdir dir="${build.dir}" /> + <mkdir dir="${lib.dir}" /> <mkdir dir="${build.dir}/${build.classes}" /> </target> - <target name="build" depends="prepare" description="Compile Project"> + <target name="build" depends="prepare,resolve" description="Compile Project"> <javac srcdir="${src.dir}" destdir="${build.dir}/${build.classes}" debug="${compile.debug}" @@ -72,25 +63,12 @@ </target> <target name="jar" depends="build" description="Generate JAR"> - <jar destfile="build/${ant.project.name}.jar" basedir="build"> + <jar destfile="${build.dir}/jars/${ant.project.name}.jar" basedir="${build.dir}/${build.classes}"> <manifest> <attribute name="Main-Class" value="${main.class}"/> </manifest> </jar> </target> - <!-- Maven Targets --> - <target name="pom" description="Generate pom.xml"> - <artifact:pom id="mypom" groupId="${maven.groupid}" artifactId="${maven.artifactid}" - version="1.0-SNAPSHOT" name="${maven.artifactid}" /> - <artifact:writepom pomRefId="mypom" file="${build.dir}/pom.xml" trim="false" /> - </target> - - <target name="maven-install" depends="clean,jar,pom" - description="Install artifact in local maven repo"> - - <artifact:install file="build/${ant.project.name}.jar"> - <pom refid="mypom" file="${build.dir}/pom.xml"/> - </artifact:install> - </target> + <import file="${jesterpm.buildtools.root}/ant/ivy-common.xml" /> </project> diff --git a/ant/ivy-common.xml b/ant/ivy-common.xml new file mode 100644 index 0000000..8637e3d --- /dev/null +++ b/ant/ivy-common.xml @@ -0,0 +1,57 @@ +<project name="ivy-common" + xmlns:ivy="antlib:org.apache.ivy.ant" + xmlns:artifact="antlib:org.apache.maven.artifact.ant"> + + <property name="ivy.jar.version" value="2.3.0"/> + <property name="ivy.jar.name" value="ivy-${ivy.jar.version}.jar"/> + <property name="ivy.home" value="${user.home}/.ivy2"/> + <available property="ivy.installed" file="${ivy.home}/${ivy.jar.name}"/> + + <!-- Install ivy jar files in ~/.ivy2 --> + <target name="ivy-install" unless="ivy.installed"> + <mkdir dir="${ivy.home}"/> + <get + src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.jar.version}/${ivy.jar.name}" + dest="${ivy.home}/${ivy.jar.name}" /> + </target> + + <target name="ivy-init" depends="ivy-install"> + <taskdef resource="org/apache/ivy/ant/antlib.xml" + uri="antlib:org.apache.ivy.ant" + classpath="${ivy.home}/${ivy.jar.name}" /> + <ivy:resolve/> + </target> + + <target name="resolve" depends="ivy-init" description="Download project dependencies"> + <ivy:retrieve /> + </target> + + <target name="dep-report" depends="resolve" description="Generate dependency report"> + <ivy:report todir="${build.dir}" /> + </target> + + <target name="gen-pom" depends="prepare,ivy-init" + description="Make a pom file for the project"> + <ivy:makepom ivyfile="ivy.xml" pomfile="${build.dir}/poms/${ant.project.name}.pom"> + <!-- + Mapping confs to scopes is important, otherwise + unmapped confs are included as optional. If you + have private confs, the best option seems to + be marking them as provided or system. See + IVY-1201 for an ehancement request. + --> + <mapping conf="default" scope="compile"/> + </ivy:makepom> + </target> + + <target name="publish-local" depends="jar,ivy-init,gen-pom" + description="Publish to local maven repo for building other projects"> + + <ivy:publish resolver="local-m2-publish" forcedeliver="true" + overwrite="true" publishivy="false"> + + <artifacts pattern="${build.dir}/[type]s/[artifact].[ext]"/> + </ivy:publish> + </target> + +</project> |