Browse Source

Add ant files to publish to maven

Change-Id: I0f247f1fd7ecfd434777845d194812a219246319
Reviewed-on: http://gerrit.dmdirc.com/2507
Reviewed-by: Shane Mc Cormack <shane@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
tags/0.7rc1
Greg Holmes 12 years ago
parent
commit
b9d04d47ce

+ 3
- 0
build-ivy.xml View File

@@ -27,6 +27,9 @@
27 27
     <target name="-init-dependencies" depends="-download-ivy" unless="ivy.done">
28 28
         <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="lib.classpath"/>
29 29
         <ivy:settings file="etc/ivy/ivysettings.xml"/>
30
+        <ivy:resolve file="ivy.common.xml" />
31
+        <ivy:retrieve symlink="true" pattern="lib/[artifact]-[revision].[ext]" />
32
+        <ivy:resolve file="ivy.irc.xml" />
30 33
         <ivy:retrieve symlink="true" pattern="lib/[artifact]-[revision].[ext]" />
31 34
         <pathconvert property="lib.classpath.computed" dirsep="/" pathsep=":">
32 35
             <path>

+ 118
- 0
build-publish.xml View File

@@ -0,0 +1,118 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project name="DMDirc-Publish" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
3
+    <description>Publish artifacts for DMDirc</description>
4
+
5
+    <available file="${git.dir}" property="is.git" />
6
+
7
+    <target name="-init-version">
8
+        <taskdef name="git-describe" classname="org.mdonoughe.JGitDescribeTask" classpathref="lib.classpath"/>
9
+    </target>
10
+
11
+    <target name="-get-git-version" depends="-init-version" if="is.git">
12
+        <git-describe dir="${git.dir}" property="parsers.version.main" subdir="${basedir}/${src.dir}/com/dmdirc/parser/common/;${basedir}/${src.dir}/com/dmdirc/parser/interfaces/" />
13
+        <git-describe dir="${git.dir}" property="parsers.version.irc" subdir="${basedir}/${src.dir}/com/dmdirc/parser/irc/" />
14
+    </target>
15
+
16
+    <target name="-publish-release" depends="-get-git-version">
17
+        <tstamp>
18
+            <format property="timestamp" pattern="yyyyddMM" />
19
+        </tstamp>
20
+        <ivy:resolve file="ivy.common.xml"/>
21
+        <ivy:deliver deliverpattern="${build.dir}/ivy.common.xml" pubrevision="${parsers.version.main}" />
22
+        <ivy:makepom ivyfile="${build.dir}/ivy.common.xml" pomfile="dist/parser.common.pom">
23
+            <mapping conf="default" scope="compile"/>
24
+        </ivy:makepom>
25
+        <ivy:retrieve/>
26
+        <ivy:publish
27
+            pubrevision="${parsers.version.main}"
28
+            status="release"
29
+            overwrite="true"
30
+            publishivy="false"
31
+            artifactspattern="dist/parser.common.[ext]"
32
+            resolver="upload-release"/>
33
+
34
+        <ivy:resolve file="ivy.irc.xml"/>
35
+        <ivy:deliver deliverpattern="${build.dir}/ivy.irc.xml" pubrevision="${parsers.version.irc}" />
36
+        <ivy:makepom ivyfile="${build.dir}/ivy.irc.xml" pomfile="dist/parser.irc.pom">
37
+            <mapping conf="default" scope="compile"/>
38
+            <dependency group="com.dmdirc.parser" artifact="common" version="${parsers.version.main}"/>
39
+        </ivy:makepom>
40
+        <ivy:retrieve/>
41
+        <ivy:publish
42
+            pubrevision="${parsers.version.irc}"
43
+            status="release"
44
+            overwrite="true"
45
+            publishivy="false"
46
+            artifactspattern="dist/parser.irc.[ext]"
47
+            resolver="upload-release"/>
48
+    </target>
49
+
50
+    <target name="-publish-nightlies" depends="-get-git-version">
51
+        <tstamp>
52
+            <format property="timestamp" pattern="yyyyddMM" />
53
+        </tstamp>
54
+        <ivy:resolve file="ivy.common.xml"/>
55
+        <ivy:deliver deliverpattern="${build.dir}/ivy.common.xml" pubrevision="Nightly-${timestamp}_${parsers.version.main}" />
56
+        <ivy:makepom ivyfile="${build.dir}/ivy.common.xml" pomfile="dist/parser.common.pom">
57
+            <mapping conf="default" scope="compile"/>
58
+        </ivy:makepom>
59
+        <ivy:retrieve/>
60
+        <ivy:publish
61
+            pubrevision="Nightly-${timestamp}_${parsers.version.main}"
62
+            status="release"
63
+            overwrite="true"
64
+            publishivy="false"
65
+            artifactspattern="dist/parser.common.[ext]"
66
+            resolver="upload-nightlies"/>
67
+
68
+        <ivy:resolve file="ivy.irc.xml"/>
69
+        <ivy:deliver deliverpattern="${build.dir}/ivy.irc.xml" pubrevision="Nightly-${timestamp}_${parsers.version.irc}" />
70
+        <ivy:makepom ivyfile="${build.dir}/ivy.irc.xml" pomfile="dist/parser.irc.pom">
71
+            <mapping conf="default" scope="compile"/>
72
+            <dependency group="com.dmdirc.parser" artifact="common" version="Nightly-${timestamp}_${parsers.version.main}"/>
73
+        </ivy:makepom>
74
+        <ivy:retrieve/>
75
+        <ivy:publish
76
+            pubrevision="Nightly-${timestamp}_${parsers.version.irc}"
77
+            status="release"
78
+            overwrite="true"
79
+            publishivy="false"
80
+            artifactspattern="dist/parser.irc.[ext]"
81
+            resolver="upload-nightlies"/>
82
+    </target>
83
+
84
+
85
+    <target name="-publish-snapshot" depends="-get-git-version">
86
+        <tstamp>
87
+            <format property="timestamp" pattern="yyyyddMM" />
88
+        </tstamp>
89
+        <ivy:resolve file="ivy.common.xml"/>
90
+        <ivy:deliver deliverpattern="${build.dir}/ivy.common.xml" pubrevision="${parsers.version.main}-SNAPSHOT" />
91
+        <ivy:makepom ivyfile="${build.dir}/ivy.common.xml" pomfile="dist/parser.common.pom">
92
+            <mapping conf="default" scope="compile"/>
93
+        </ivy:makepom>
94
+        <ivy:retrieve/>
95
+        <ivy:publish
96
+            pubrevision="${parsers.version.main}-SNAPSHOT"
97
+            status="release"
98
+            overwrite="true"
99
+            publishivy="false"
100
+            artifactspattern="dist/parser.common.[ext]"
101
+            resolver="upload-snapshot"/>
102
+
103
+        <ivy:resolve file="ivy.irc.xml"/>
104
+        <ivy:deliver deliverpattern="${build.dir}/ivy.irc.xml" pubrevision="${parsers.version.irc}-SNAPSHOT" />
105
+        <ivy:makepom ivyfile="${build.dir}/ivy.irc.xml" pomfile="dist/parser.irc.pom">
106
+            <mapping conf="default" scope="compile"/>
107
+            <dependency group="com.dmdirc.parser" artifact="common" version="${parsers.version.main}-SNAPSHOT"/>
108
+        </ivy:makepom>
109
+        <ivy:retrieve/>
110
+        <ivy:publish
111
+            pubrevision="${parsers.version.irc}-SNAPSHOT"
112
+            status="release"
113
+            overwrite="true"
114
+            publishivy="false"
115
+            artifactspattern="dist/parser.irc.[ext]"
116
+            resolver="upload-snapshot"/>
117
+    </target>
118
+</project>

+ 3
- 3
build-versioning.xml View File

@@ -2,7 +2,7 @@
2 2
 <project name="DMDirc-versioning" default="default" basedir=".">
3 3
     <description>Adds automatic versioning information to DMDirc</description>
4 4
 
5
-    <available file=".git" property="is.git"/>
5
+    <available file="${git.dir}" property="is.git"/>
6 6
 
7 7
     <target name="-init-version">
8 8
         <taskdef name="git-describe" classname="org.mdonoughe.JGitDescribeTask" classpathref="lib.classpath"/>
@@ -11,8 +11,8 @@
11 11
     <target name="-add-version" depends="-init-version, -add-git-version" />
12 12
 
13 13
     <target name="-add-git-version" if="is.git">
14
-       <git-describe dir=".git" property="parsers.version.main" subdir="${src.dir}/com/dmdirc/parser/common/;${src.dir}/com/dmdirc/parser/interfaces/" />
15
-       <git-describe dir=".git" property="parsers.version.irc" subdir="${src.dir}/com/dmdirc/parser/irc/" />
14
+       <git-describe dir="${git.dir}" property="parsers.version.main" subdir="${basedir}/${src.dir}/com/dmdirc/parser/common/;${basedir}/${src.dir}/com/dmdirc/parser/interfaces/" />
15
+       <git-describe dir="${git.dir}" property="parsers.version.irc" subdir="${basedir}/${src.dir}/com/dmdirc/parser/irc/" />
16 16
     </target>
17 17
 
18 18
 </project>

+ 5
- 0
build.xml View File

@@ -5,6 +5,9 @@
5 5
     <import file="nbproject/build-impl.xml"/>
6 6
     <import file="build-ivy.xml"/>
7 7
     <import file="build-versioning.xml"/>
8
+    <import file="build-publish.xml"/>
9
+
10
+    <property name="git.dir" value=".git"/>
8 11
 
9 12
     <target name="-pre-init" depends="-init-dependencies"/>
10 13
     <target name="-post-compile" depends="-add-version"/>
@@ -35,4 +38,6 @@
35 38
     <target name="-post-test-run">
36 39
         <delete file="${manifest.file}"/>
37 40
     </target>
41
+    <target name="publish-nightlies" depends="clean, jar, -publish-nightlies" />
42
+    <target name="publish-release" depends="clean, jar, -publish-release" />
38 43
 </project>

+ 5
- 12
etc/ivy/ivysettings.xml View File

@@ -1,17 +1,10 @@
1 1
 <ivysettings>
2 2
     <settings defaultResolver="default"/>
3
+    <credentials host="nexus.dmdirc.com" realm="Sonatype Nexus Repository Manager" username="${username}" passwd="${password}"/>
3 4
     <resolvers>
4
-        <ibiblio name="default" m2compatible="true"/>
5
-
6
-        <ibiblio name="jgit" root="http://download.eclipse.org/jgit/maven" m2compatible="true"/>
7
-
8
-        <url name="jgit-describe">
9
-            <ivy pattern="file:///${basedir}/etc/ivy/[module]/ivy.xml"/>
10
-            <artifact pattern="http://shanemcc.github.com/jgit-describe/releases/jgit-describe-[revision].jar"/>
11
-        </url>
5
+        <ibiblio name="default" root="http://nexus.dmdirc.com/nexus/content/groups/public" m2compatible="true"/>
6
+        <ibiblio name="upload-snapshot" root="http://nexus.dmdirc.com/nexus/content/repositories/snapshots" m2compatible="true" />
7
+        <ibiblio name="upload-nightlies" root="http://nexus.dmdirc.com/nexus/content/repositories/nightlies" m2compatible="true" />
8
+        <ibiblio name="upload-release" root="http://nexus.dmdirc.com/nexus/content/repositories/releases" m2compatible="true" />
12 9
     </resolvers>
13
-    <modules>
14
-        <module organisation="com.github.shanemcc" name="jgit-describe" resolver="jgit-describe"/>
15
-        <module organisation="org.eclipse.jgit" name="*" resolver="jgit"/>
16
-    </modules>
17 10
 </ivysettings>

+ 0
- 6
etc/ivy/jgit-describe/ivy.xml View File

@@ -1,6 +0,0 @@
1
-<ivy-module version="2.0">
2
-    <info organisation="com.github.shanemcc" module="jgit-describe"/>
3
-    <dependencies>
4
-        <dependency org="org.eclipse.jgit" name="org.eclipse.jgit" rev="latest.integration" conf="default" />
5
-    </dependencies>
6
-</ivy-module>

+ 23
- 0
ivy.common.xml View File

@@ -0,0 +1,23 @@
1
+<ivy-module version="2.0">
2
+    <info organisation="com.dmdirc.parser" module="common"/>
3
+
4
+    <configurations>
5
+        <conf name="build" description="Everything needed to build"/>
6
+        <conf name="compile" description="Everything needed to compile"/>
7
+        <conf name="test" description="Everything needed to test"/>
8
+        <conf name="default" extends="build,compile,test"/>
9
+    </configurations>
10
+
11
+    <publications>
12
+        <artifact type="jar" ext="jar" conf="default"/>
13
+        <artifact type="pom" ext="pom" conf="default"/>
14
+    </publications>
15
+
16
+    <dependencies defaultconfmapping="*->default">
17
+        <dependency org="com.github.shanemcc" name="jgit-describe" rev="0.2" conf="build" />
18
+        <dependency org="junit" name="junit" rev="4.+" conf="test" />
19
+        <dependency org="org.mockito" name="mockito-all" rev="1.+" conf="test" />
20
+
21
+        <exclude org="ant" module="ant"/>
22
+    </dependencies>
23
+</ivy-module>

ivy.xml → ivy.irc.xml View File

@@ -1,5 +1,5 @@
1 1
 <ivy-module version="2.0">
2
-    <info organisation="com.dmdirc" module="utils"/>
2
+    <info organisation="com.dmdirc.parser" module="irc"/>
3 3
 
4 4
     <configurations>
5 5
         <conf name="build" description="Everything needed to build"/>
@@ -8,6 +8,11 @@
8 8
         <conf name="default" extends="build,compile,test"/>
9 9
     </configurations>
10 10
 
11
+    <publications>
12
+        <artifact type="jar" ext="jar" conf="default"/>
13
+        <artifact type="pom" ext="pom" conf="default"/>
14
+    </publications>
15
+
11 16
     <dependencies defaultconfmapping="*->default">
12 17
         <dependency org="com.github.shanemcc" name="jgit-describe" rev="0.3" conf="build" />
13 18
         <dependency org="junit" name="junit" rev="4.+" conf="test" />

BIN
lib/jgit-describe-0.2.jar View File


BIN
lib/junit-4.8.1.jar View File


BIN
lib/mockito-all-1.8.2.jar View File


BIN
lib/org.eclipse.jgit-1.3.0-SNAPSHOT.jar View File


Loading…
Cancel
Save