diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2008-10-31 10:44:15 +0000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2008-10-31 10:44:15 +0000 |
commit | 81985e49cf9f492a4af6be8ed5c3125ca4861fbe (patch) | |
tree | 8f9ebb29c7dbb3e83b4d84446b729db425ec0c70 /src | |
parent | 2bed53ea790cc763f9d0dcea34ef06b66091906c (diff) | |
download | scala-81985e49cf9f492a4af6be8ed5c3125ca4861fbe.tar.gz scala-81985e49cf9f492a4af6be8ed5c3125ca4861fbe.tar.bz2 scala-81985e49cf9f492a4af6be8ed5c3125ca4861fbe.zip |
merged work from maven2 branch into trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/build/maven/maven-deploy.xml | 152 | ||||
-rw-r--r-- | src/build/maven/scala-compiler-pom.xml | 26 | ||||
-rw-r--r-- | src/build/maven/scala-dbc-pom.xml | 26 | ||||
-rw-r--r-- | src/build/maven/scala-library-pom.xml | 19 | ||||
-rw-r--r-- | src/build/maven/scala-swing-pom.xml | 26 | ||||
-rw-r--r-- | src/build/pack.xml | 64 |
6 files changed, 308 insertions, 5 deletions
diff --git a/src/build/maven/maven-deploy.xml b/src/build/maven/maven-deploy.xml new file mode 100644 index 0000000000..de79b1d1fa --- /dev/null +++ b/src/build/maven/maven-deploy.xml @@ -0,0 +1,152 @@ +<?xml version="1.0" encoding="UTF-8"?>
+
+<project name="sabbus-maven-deploy" xmlns:artifact="urn:maven-artifact-ant">
+
+ <description>
+ SuperSabbus extension for deploying a distribution to Maven. THIS FILE IS MEANT TO BE RUN STANDALONE IN THE MAVEN "distpack" DIRECTORY
+ </description>
+ <target name="init.properties">
+ <!-- Pull in properties from build -->
+ <property file="build.properties" />
+ <!-- Initialize specific properties -->
+ <property name="remote.snapshot.repository" value="http://scala-tools.org:8081/nexus/content/repositories/snapshots" />
+ <property name="remote.release.repository" value="http://scala-tools.org:8081/nexus/content/repositories/releases" />
+ <property name="local.snapshot.repository" value="${user.home}/.m2/repository" />
+ <property name="local.release.repository" value="${user.home}/.m2/repository" />
+ <property name="repository.credentials.id" value="scala-tools.org" />
+
+ <echo>Using server[${repository.credentials.id}] for maven repository credentials.
+ Please make sure that your ~/.m2/settings.xml has the needed username/password for this server id
+ </echo>
+ </target>
+
+ <target name="init.maven" depends="init.properties">
+
+ <!-- Add our maven ant tasks -->
+ <path id="maven-ant-tasks.classpath" path="maven-ant-tasks-2.0.9.jar" />
+ <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant" classpathref="maven-ant-tasks.classpath" />
+ <!-- simplify fixing pom versions -->
+ <macrodef name="make-pom">
+ <attribute name="name" />
+ <attribute name="version" />
+ <sequential>
+ <copy file="@{name}/@{name}-pom.xml" tofile="@{name}/@{name}-pom-fixed.xml" overwrite="true">
+ <filterset>
+ <filter token="VERSION" value="@{version}" />
+ <filter token="RELEASE_REPOSITORY" value="${remote.release.repository}" />
+ <filter token="SNAPSHOT_REPOSITORY" value="${remote.snapshot.repository}" />
+ </filterset>
+ </copy>
+ <artifact:pom id="@{name}.pom" file="@{name}/@{name}-pom-fixed.xml" />
+ </sequential>
+ </macrodef>
+ <!-- Simply attaching documentation -->
+ <macrodef name="attach-doc">
+ <attribute name="name" />
+ <sequential>
+ <artifact:attach type="jar" file="@{name}/@{name}-docs.jar" classifier="javadoc" />
+ </sequential>
+ </macrodef>
+ </target>
+ <!-- macros for local deployment -->
+ <target name="deploy.local.init" depends="init.maven">
+ <!-- Deploy single artifact locally -->
+ <macrodef name="deploy-local">
+ <attribute name="name" />
+ <attribute name="version" />
+ <attribute name="repository" />
+ <element name="extra-attachments" optional="yes" />
+ <sequential>
+ <make-pom name="@{name}" version="@{version}" />
+ <artifact:install file="@{name}/@{name}.jar">
+ <artifact:pom refid="@{name}.pom" />
+ <artifact:localRepository path="@{repository}" id="${repository.credentials.id}" />
+ <artifact:attach type="jar" file="@{name}/@{name}-src.jar" classifier="sources" />
+ <extra-attachments />
+ </artifact:install>
+ </sequential>
+ </macrodef>
+
+ <!-- Deploy all artifacts locally -->
+ <macrodef name="deploy-local-all">
+ <attribute name="repository" />
+ <attribute name="version" />
+ <sequential>
+ <deploy-local name="scala-library" version="@{version}" repository="@{repository}">
+ <extra-attachments>
+ <artifact:attach type="jar" file="scala-library/scala-library-docs.jar" classifier="javadoc" />
+ </extra-attachments>
+ </deploy-local>
+ <deploy-local name="scala-compiler" version="@{version}" repository="@{repository}" />
+ <deploy-local name="scala-dbc" version="@{version}" repository="@{repository}" />
+ <deploy-local name="scala-swing" version="@{version}" repository="@{repository}"/>
+ <!-- scala swing api is included in main library api + <extra-attachments>
+ <artifact:attach type="jar" file="scala-swing/scala-swing-docs.jar" classifier="javadoc" />
+ </extra-attachments>
+ </deploy-local> + -->
+ </sequential>
+ </macrodef>
+ </target>
+
+ <!-- macros for remote deployment -->
+ <target name="deploy.remote.init" depends="init.maven">
+ <!-- Deploy single artifact locally -->
+ <macrodef name="deploy-remote">
+ <attribute name="name" />
+ <attribute name="repository" />
+ <attribute name="version" />
+ <element name="extra-attachments" optional="yes" />
+ <sequential>
+ <make-pom name="@{name}" version="@{version}" />
+ <artifact:deploy file="@{name}/@{name}.jar">
+ <artifact:pom refid="@{name}.pom" />
+ <artifact:remoteRepository url="@{repository}" id="${repository.credentials.id}" />
+ <artifact:attach type="jar" file="@{name}/@{name}-src.jar" classifier="sources" />
+ <extra-attachments />
+ </artifact:deploy>
+ </sequential>
+ </macrodef>
+
+ <!-- Deploy all artifacts locally -->
+ <macrodef name="deploy-remote-all">
+ <attribute name="repository" />
+ <attribute name="version" />
+ <sequential>
+ <deploy-remote name="scala-library" version="@{version}" repository="@{repository}">
+ <extra-attachments>
+ <artifact:attach type="jar" file="scala-library/scala-library-docs.jar" classifier="javadoc" />
+ </extra-attachments>
+ </deploy-remote>
+ <deploy-remote name="scala-compiler" version="@{version}" repository="@{repository}" />
+ <deploy-remote name="scala-dbc" version="@{version}" repository="@{repository}" />
+ <deploy-remote name="scala-swing" version="@{version}" repository="@{repository}"/>
+ <!-- scala swing api is included in main library api + <extra-attachments>
+ <artifact:attach type="jar" file="scala-swing/scala-swing-docs.jar" classifier="javadoc" />
+ </extra-attachments>
+ </deploy-remote> + -->
+ </sequential>
+ </macrodef>
+ </target>
+
+ <!-- Local Targets -->
+ <target name="deploy.snapshot.local" depends="deploy.local.init" description="Deploys the bundled snapshot of the Scala Lanaguage to a local maven repository">
+ <deploy-local-all version="${maven.snapshot.version.number}" repository="${local.snapshot.repository}" />
+ </target>
+
+ <target name="deploy.release.local" depends="deploy.local.init" description="Deploys the bundled files as a release into the local Maven repository">
+ <deploy-local-all version="${version.number}" repository="${local.release.repository}" />
+ </target>
+
+ <!-- Remote Targets -->
+ <target name="deploy.snapshot" depends="deploy.remote.init" description="Deploys the bundled files as a snapshot into the desired remote Maven repository">
+ <deploy-remote-all version="${maven.snapshot.version.number}" repository="${remote.snapshot.repository}" />
+ </target>
+
+ <target name="deploy.release" depends="deploy.remote.init" description="Deploys the bundled files as a release into the desired remote Maven repository">
+ <deploy-remote-all version="${version.number}" repository="${remote.release.repository}" />
+ </target>
+</project>
\ No newline at end of file diff --git a/src/build/maven/scala-compiler-pom.xml b/src/build/maven/scala-compiler-pom.xml new file mode 100644 index 0000000000..88c3b69bcc --- /dev/null +++ b/src/build/maven/scala-compiler-pom.xml @@ -0,0 +1,26 @@ +<project + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.scala-lang</groupId> + <artifactId>scala-compiler</artifactId> + <packaging>jar</packaging> + <version>@VERSION@</version> + <dependencies> + <dependency> + <groupId>org.scala-lang</groupId> + <artifactId>scala-library</artifactId> + <version>@VERSION@</version> + </dependency> + </dependencies> + <distributionManagement> + <repository> + <id>scala-tools.org</id> + <url>@RELEASE_REPOSITORY@</url> + </repository> + <snapshotRepository> + <id>scala-tools.org</id> + <url>@SNAPSHOT_REPOSITORY@</url> + <uniqueVersion>false</uniqueVersion> + </snapshotRepository> + </distributionManagement> +</project>
\ No newline at end of file diff --git a/src/build/maven/scala-dbc-pom.xml b/src/build/maven/scala-dbc-pom.xml new file mode 100644 index 0000000000..66be811cf2 --- /dev/null +++ b/src/build/maven/scala-dbc-pom.xml @@ -0,0 +1,26 @@ +<project + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.scala-lang</groupId> + <artifactId>scala-dbc</artifactId> + <packaging>jar</packaging> + <version>@VERSION@</version> + <dependencies> + <dependency> + <groupId>org.scala-lang</groupId> + <artifactId>scala-library</artifactId> + <version>@VERSION@</version> + </dependency> + </dependencies> + <distributionManagement> + <repository> + <id>scala-tools.org</id> + <url>@RELEASE_REPOSITORY@</url> + </repository> + <snapshotRepository> + <id>scala-tools.org</id> + <url>@SNAPSHOT_REPOSITORY@</url> + <uniqueVersion>false</uniqueVersion> + </snapshotRepository> + </distributionManagement> +</project>
\ No newline at end of file diff --git a/src/build/maven/scala-library-pom.xml b/src/build/maven/scala-library-pom.xml new file mode 100644 index 0000000000..8c1d343264 --- /dev/null +++ b/src/build/maven/scala-library-pom.xml @@ -0,0 +1,19 @@ +<project + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.scala-lang</groupId> + <artifactId>scala-library</artifactId> + <packaging>jar</packaging> + <version>@VERSION@</version> + <distributionManagement> + <repository> + <id>scala-tools.org</id> + <url>@RELEASE_REPOSITORY@</url> + </repository> + <snapshotRepository> + <id>scala-tools.org</id> + <url>@SNAPSHOT_REPOSITORY@</url> + <uniqueVersion>false</uniqueVersion> + </snapshotRepository> + </distributionManagement> +</project>
\ No newline at end of file diff --git a/src/build/maven/scala-swing-pom.xml b/src/build/maven/scala-swing-pom.xml new file mode 100644 index 0000000000..a2d5fea914 --- /dev/null +++ b/src/build/maven/scala-swing-pom.xml @@ -0,0 +1,26 @@ +<project + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.scala-lang</groupId> + <artifactId>scala-swing</artifactId> + <packaging>jar</packaging> + <version>@VERSION@</version> + <dependencies> + <dependency> + <groupId>org.scala-lang</groupId> + <artifactId>scala-library</artifactId> + <version>@VERSION@</version> + </dependency> + </dependencies> + <distributionManagement> + <repository> + <id>scala-tools.org</id> + <url>@RELEASE_REPOSITORY@</url> + </repository> + <snapshotRepository> + <id>scala-tools.org</id> + <url>@SNAPSHOT_REPOSITORY@</url> + <uniqueVersion>false</uniqueVersion> + </snapshotRepository> + </distributionManagement> +</project>
\ No newline at end of file diff --git a/src/build/pack.xml b/src/build/pack.xml index 950b272644..0f450cc951 100644 --- a/src/build/pack.xml +++ b/src/build/pack.xml @@ -142,7 +142,61 @@ MAIN DISTRIBUTION SBAZ <target name="pack-sbaz.done" depends="pack-sbaz.all"/> - + + <target name="pack-maven.start"> + <mkdir dir="${dists.dir}/maven/${version.number}"/> + </target> + + <target name="pack-maven.libs" depends="pack-maven.start"> + <macrodef name="mvn-copy-lib"> + <attribute name="mvn.artifact.name"/> + <sequential> + <mkdir dir="${dists.dir}/maven/${version.number}/@{mvn.artifact.name}"/> + <copy todir="${dists.dir}/maven/${version.number}/@{mvn.artifact.name}"> + <fileset dir="${dist.dir}/lib/"> + <filename name="@{mvn.artifact.name}.jar"/> + </fileset> + <fileset dir="${src.dir}/build/maven/"> + <filename name="@{mvn.artifact.name}-pom.xml"/> + </fileset> + <fileset dir="${dist.dir}/src/"> + <filename name="@{mvn.artifact.name}-src.jar"/> + </fileset> + </copy> + </sequential> + </macrodef> + <mvn-copy-lib mvn.artifact.name="scala-library"/> + <mvn-copy-lib mvn.artifact.name="scala-compiler"/> + <mvn-copy-lib mvn.artifact.name="scala-dbc"/> + <mvn-copy-lib mvn.artifact.name="scala-swing"/> + </target> + + <target name="pack-maven.docs" depends="pack-maven.libs"> + <jar destfile="${dists.dir}/maven/${version.number}/scala-library/scala-library-docs.jar" + basedir="${build-docs.dir}/library"> + <include name="**/*"/> + </jar> + <!-- scala-swing api is included in main library api + <jar destfile="${dists.dir}/maven/${version.number}/scala-swing/scala-swing-docs.jar" + basedir="${build-docs.dir}/swing"> + <include name="**/*"/> + </jar> + --> + </target> + + <target name="pack-maven.scripts" depends="pack-maven.docs"> + <copy todir="${dists.dir}/maven/${version.number}" + file="${lib-ant.dir}/maven-ant-tasks-2.0.9.jar"/> + <copyfile dest="${dists.dir}/maven/${version.number}/build.xml" + src="${src.dir}/build/maven/maven-deploy.xml"/> + <!-- export properties for use when deploying --> + <property name="maven.snapshot.version.number" + value="${version.major}.${version.minor}.${version.patch}-SNAPSHOT"/> + <echoproperties destfile="${dists.dir}/maven/${version.number}/build.properties"/> + </target> + + <target name="pack-maven.done" depends="pack-maven.scripts"/> + <!-- =========================================================================== JAVA FOUR DISTRIBUTION PACKAGING ============================================================================ --> @@ -228,9 +282,9 @@ MSIL DISTRIBUTION PACKAGING <!-- =========================================================================== MISCELLANEOUS ============================================================================ --> - - <target name="pack-all.done" depends="pack-archives.done, pack-sbaz.done"/> - + + <target name="pack-all.done" depends="pack-archives.done, pack-sbaz.done, pack-maven.done"/> + <target name="fourpack-all.done" depends="fourpack-archives.done"/> <target name="msilpack-all.done" depends="msilpack-archives.done, msilpack-sbaz.done"/> @@ -238,7 +292,7 @@ MISCELLANEOUS <!-- =========================================================================== MISCELLANEOUS ============================================================================ --> - + <target name="graph.init"> <echo message="${basedir}/lib/ant/vizant.jar"/> <taskdef name="vizant" classname="vizant.Vizant" classpath="${basedir}/../../lib/ant/vizant.jar"/> |