Updated to reflect my growing understanding of how to use Ivy.

This commit is contained in:
Michael Bayne
2010-08-28 01:23:16 +00:00
parent 0aa165c31e
commit 4966f76067
3 changed files with 48 additions and 37 deletions
+31 -23
View File
@@ -6,6 +6,9 @@
<property name="doc.overview" value="com/samskivert/depot/overview.html"/> <property name="doc.overview" value="com/samskivert/depot/overview.html"/>
<property name="copyright.holder" value="Michael Bayne"/> <property name="copyright.holder" value="Michael Bayne"/>
<!-- the next release version -->
<property name="revision" value="1.0"/>
<!-- various directories used when building things --> <!-- various directories used when building things -->
<property name="src.dir" value="src/main/java"/> <property name="src.dir" value="src/main/java"/>
<property name="test.dir" value="src/test/java"/> <property name="test.dir" value="src/test/java"/>
@@ -27,8 +30,7 @@
<path id="ivy.lib.path"><fileset dir="${ivy.jar.dir}" includes="*.jar"/></path> <path id="ivy.lib.path"><fileset dir="${ivy.jar.dir}" includes="*.jar"/></path>
<taskdef resource="org/apache/ivy/ant/antlib.xml" <taskdef resource="org/apache/ivy/ant/antlib.xml"
uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/> uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
<ivy:cachepath pathid="compile.classpath" conf="runtime" log="download-only"/> <ivy:cachepath pathid="compile.classpath" conf="compile" log="download-only"/>
<ivy:cachepath pathid="tools.classpath" conf="tools" log="download-only"/>
<ivy:cachepath pathid="test.classpath" conf="test" log="download-only"/> <ivy:cachepath pathid="test.classpath" conf="test" log="download-only"/>
</target> </target>
@@ -36,7 +38,9 @@
<target name="-prepare" depends="-init-ivy"> <target name="-prepare" depends="-init-ivy">
<tstamp><format property="year" pattern="yyyy" /></tstamp> <tstamp><format property="year" pattern="yyyy" /></tstamp>
<mkdir dir="${deploy.dir}"/> <mkdir dir="${deploy.dir}"/>
<mkdir dir="${deploy.dir}/lib"/> <mkdir dir="${deploy.dir}/jar"/>
<mkdir dir="${deploy.dir}/source"/>
<mkdir dir="${deploy.dir}/javadoc"/>
<mkdir dir="${classes.dir}"/> <mkdir dir="${classes.dir}"/>
<mkdir dir="${tclasses.dir}"/> <mkdir dir="${tclasses.dir}"/>
<mkdir dir="${javadoc.dir}"/> <mkdir dir="${javadoc.dir}"/>
@@ -46,10 +50,12 @@
</target> </target>
<target name="check-ivy" depends="-init-ivy" description="Computes and prints Ivy classpath."> <target name="check-ivy" depends="-init-ivy" description="Computes and prints Ivy classpath.">
<property refid="compile.classpath" name="compile.str"/> <pathconvert pathsep="${line.separator} " property="compile.str" refid="compile.classpath"/>
<echo>Compile: ${compile.str}</echo> <echo>Compile classpath:</echo>
<property refid="test.classpath" name="test.str"/> <echo> ${compile.str}</echo>
<echo>Test: ${test.str}</echo> <echo>Test classpath:</echo>
<pathconvert pathsep="${line.separator} " property="test.str" refid="test.classpath"/>
<echo> ${test.str}</echo>
</target> </target>
<target name="clean" description="Cleans out build results."> <target name="clean" description="Cleans out build results.">
@@ -75,7 +81,7 @@
<target name="tools-compile" depends="compile" description="Compiles tool code."> <target name="tools-compile" depends="compile" description="Compiles tool code.">
<javac srcdir="${src.dir}" destdir="${classes.dir}" includeAntRuntime="false" <javac srcdir="${src.dir}" destdir="${classes.dir}" includeAntRuntime="false"
debug="on" optimize="${build.optimize}" source="1.5" target="1.5" encoding="utf-8"> debug="on" optimize="${build.optimize}" source="1.5" target="1.5" encoding="utf-8">
<classpath refid="tools.classpath"/> <classpath refid="compile.classpath"/>
<include name="com/samskivert/depot/tools/**"/> <include name="com/samskivert/depot/tools/**"/>
<compilerarg value="-Xlint"/> <compilerarg value="-Xlint"/>
<compilerarg value="-Xlint:-serial"/> <compilerarg value="-Xlint:-serial"/>
@@ -121,9 +127,10 @@
<exclude name="com/samskivert/depot/impl/**"/> <exclude name="com/samskivert/depot/impl/**"/>
</packageset> </packageset>
<bottom>Copyright &#169; 2006-${year} ${copyright.holder}. All Rights Reserved.</bottom> <bottom>Copyright &#169; 2006-${year} ${copyright.holder}. All Rights Reserved.</bottom>
<classpath refid="tools.classpath"/> <classpath refid="compile.classpath"/>
<link href="http://java.sun.com/j2se/1.5/docs/api/"/> <link href="http://java.sun.com/j2se/1.5/docs/api/"/>
</javadoc> </javadoc>
<jar destfile="${deploy.dir}/javadoc/${lib.name}.jar" basedir="${javadoc.dir}"/>
</target> </target>
<target name="all" depends="clean,compile,javadoc,dist" <target name="all" depends="clean,compile,javadoc,dist"
@@ -153,15 +160,13 @@
</target> </target>
<target name="dist" depends="tools-compile" description="Builds our jar file."> <target name="dist" depends="tools-compile" description="Builds our jar file.">
<jar destfile="${deploy.dir}/${lib.name}.jar" basedir="${classes.dir}"> <jar destfile="${deploy.dir}/jar/${lib.name}.jar" basedir="${classes.dir}"/>
<exclude name="**/tests/**"/> <jar destfile="${deploy.dir}/source/${lib.name}.jar" basedir="${src.dir}"/>
</jar>
</target> </target>
<target name="publish" depends="dist" description="Publishes jar to local repository."> <target name="publish" depends="dist,javadoc" description="Publishes jar to local repository.">
<property name="release" value="1.0"/> <ivy:publish resolver="local" pubrevision="${revision}" forcedeliver="true">
<ivy:publish resolver="local" pubrevision="${release}"> <artifacts pattern="${deploy.dir}/[type]/[artifact].[ext]"/>
<artifacts pattern="${deploy.dir}/[artifact].[ext]" />
</ivy:publish> </ivy:publish>
</target> </target>
@@ -172,21 +177,24 @@
<arg value="https://${lib.name}.googlecode.com/svn/releases/com.samskivert/${lib.name}"/> <arg value="https://${lib.name}.googlecode.com/svn/releases/com.samskivert/${lib.name}"/>
<arg value="temp"/> <arg value="temp"/>
</exec> </exec>
<mkdir dir="temp/${release}"/> <mkdir dir="temp/${revision}"/>
<copy todir="temp/${release}"> <copy todir="temp/${revision}">
<fileset dir="${user.home}/.ivy2/local/com.samskivert/${lib.name}/${release}/ivys" <fileset dir="${user.home}/.ivy2/local/com.samskivert/${lib.name}/${revision}/ivys"
includes="ivy.xml"/> includes="ivy.xml"/>
<fileset dir="${user.home}/.ivy2/local/com.samskivert/${lib.name}/${release}/jars" <fileset dir="${user.home}/.ivy2/local/com.samskivert/${lib.name}/${revision}">
includes="${lib.name}.jar"/> <include name="jars/${lib.name}.jar"/>
<include name="sources/${lib.name}.jar"/>
<include name="javadocs/${lib.name}.jar"/>
</fileset>
</copy> </copy>
<exec executable="svn"> <exec executable="svn">
<arg value="add"/> <arg value="add"/>
<arg value="temp/${release}"/> <arg value="temp/${revision}"/>
</exec> </exec>
<exec executable="svn"> <exec executable="svn">
<arg value="commit"/> <arg value="commit"/>
<arg value="-m"/> <arg value="-m"/>
<arg value="Published release ${release}."/> <arg value="Published release ${revision}."/>
<arg value="temp"/> <arg value="temp"/>
</exec> </exec>
<delete dir="temp"/> <delete dir="temp"/>
+15 -12
View File
@@ -2,20 +2,23 @@
<info organisation="com.samskivert" module="depot" revision="1.0"> <info organisation="com.samskivert" module="depot" revision="1.0">
<description homepage="http://code.google.com/p/depot"/> <description homepage="http://code.google.com/p/depot"/>
</info> </info>
<configurations defaultconfmapping="test->master(*);compile->master(*);runtime->master(*);tools->master(*)"> <configurations>
<conf name="master" visibility="public"/>
<conf name="compile" visibility="public"/>
<conf name="runtime" visibility="public" extends="compile"/>
<conf name="tools" visibility="public" extends="runtime"/>
<conf name="test" visibility="private" extends="runtime"/>
<conf name="default" visibility="public" extends="runtime,master"/> <conf name="default" visibility="public" extends="runtime,master"/>
<conf name="master" visibility="public"/>
<conf name="provided" visibility="public"/>
<conf name="runtime" visibility="public"/>
<conf name="sources" visibility="public"/>
<conf name="javadoc" visibility="public"/>
<conf name="optional" visibility="public"/>
<conf name="compile" visibility="private" extends="runtime,provided,optional"/>
<conf name="test" visibility="private" extends="compile"/>
</configurations> </configurations>
<dependencies> <dependencies>
<dependency org="com.samskivert" name="samskivert" rev="1.0" conf="runtime"/> <dependency org="com.samskivert" name="samskivert" rev="1.0" conf="runtime->default"/>
<dependency org="com.google.guava" name="guava" rev="r05" conf="runtime"/> <dependency org="com.google.guava" name="guava" rev="r05" conf="runtime->default"/>
<dependency org="net.sf.ehcache" name="ehcache" rev="1.6.0" conf="runtime"/> <dependency org="org.hsqldb" name="hsqldb" rev="2.0.0" conf="test->master(*)"/>
<dependency org="org.hsqldb" name="hsqldb" rev="2.0.0" conf="test"/> <dependency org="junit" name="junit" rev="4.8.1" conf="test->master(*)"/>
<dependency org="junit" name="junit" rev="4.8.1" conf="test"/> <dependency org="net.sf.ehcache" name="ehcache" rev="1.6.0" conf="optional->master(*)"/>
<dependency org="org.apache.ant" name="ant" rev="1.7.1" conf="tools"/> <dependency org="org.apache.ant" name="ant" rev="1.7.1" conf="provided->master(*)"/>
</dependencies> </dependencies>
</ivy-module> </ivy-module>
+2 -2
View File
@@ -7,8 +7,8 @@
<resolver ref="local"/> <resolver ref="local"/>
<resolver ref="public"/> <resolver ref="public"/>
<url name="samskivert"> <url name="samskivert">
<ivy pattern="http://samskivert.googlecode.com/svn/releases/[organization]/[module]/[revision]/[artifact].xml"/> <ivy pattern="http://samskivert.googlecode.com/svn/releases/[organization]/[module]/[revision]/[type]s/[artifact].xml"/>
<artifact pattern="http://samskivert.googlecode.com/svn/releases/[organization]/[module]/[revision]/[artifact].[ext]"/> <artifact pattern="http://samskivert.googlecode.com/svn/releases/[organization]/[module]/[revision]/[type]s/[artifact].[ext]"/>
</url> </url>
</chain> </chain>
</resolvers> </resolvers>