aboutsummaryrefslogtreecommitdiff
path: root/buildScripts/maven.ant.xml
diff options
context:
space:
mode:
Diffstat (limited to 'buildScripts/maven.ant.xml')
-rw-r--r--buildScripts/maven.ant.xml126
1 files changed, 126 insertions, 0 deletions
diff --git a/buildScripts/maven.ant.xml b/buildScripts/maven.ant.xml
new file mode 100644
index 00000000..329eacec
--- /dev/null
+++ b/buildScripts/maven.ant.xml
@@ -0,0 +1,126 @@
+<!--
+ Copyright (C) 2020 The Project Lombok Authors.
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+-->
+<project name="lombok.maven" xmlns:ivy="antlib:com.zwitserloot.ivyplusplus" basedir="..">
+ <description>
+This buildfile is part of projectlombok.org. It makes maven-compatible repositories.
+ </description>
+
+ <condition property="exe.mvn.base" value="mvn.cmd" else="mvn">
+ <os family="windows" />
+ </condition>
+ <condition property="exe.mvn" value="${env.MAVEN_HOME}/bin/${exe.mvn.base}" else="${exe.mvn.base}">
+ <isset property="env.MAVEN_HOME" />
+ </condition>
+
+ <macrodef name="maven.make">
+ <attribute name="version-name" />
+ <sequential>
+ <jar destfile="dist/lombok-${lombok.version}-javadoc.jar">
+ <fileset dir="doc/api" />
+ </jar>
+
+ <jar destfile="dist/lombok-${lombok.version}-sources.jar">
+ <fileset dir="src/core" />
+ <fileset dir="src/launch" />
+ <fileset dir="src/utils" />
+ <fileset dir="src/eclipseAgent" />
+ <fileset dir="src/installer" />
+ <fileset dir="src/delombok" />
+ <fileset dir="test/transform/src" />
+ <fileset dir="test/core/src" />
+ </jar>
+
+ <copy tofile="build/pom.xml" overwrite="true" file="doc/maven-pom.xml">
+ <filterchain>
+ <replacetokens>
+ <token key="VERSION" value="@{version-name}" />
+ </replacetokens>
+ </filterchain>
+ </copy>
+ </sequential>
+ </macrodef>
+
+ <target name="maven" depends="version, dist, javadoc.build" description="Creates a maven repo for the current release into a build dir. The intent is for you to put that on a server someplace. Will invoke your local mvn installation.">
+ <mkdir dir="build" />
+ <mkdir dir="dist" />
+
+ <maven.make version-name="${lombok.version}" />
+ <tar destfile="dist/mavenPublish.tar.bz2" compression="bzip2">
+ <tarfileset dir="dist">
+ <include name="lombok-${lombok.version}.jar" />
+ <include name="lombok-${lombok.version}-sources.jar" />
+ <include name="lombok-${lombok.version}-javadoc.jar" />
+ </tarfileset>
+ <tarfileset dir="build" includes="pom.xml" />
+ </tar>
+ </target>
+
+ <target name="maven.publish" depends="maven, setup.ssh">
+ <ivy:scpUpload
+ from="dist/mavenPublish.tar.bz2"
+ to="/data/lombok/staging"
+ server="projectlombok.org"
+ username="${ssh.username}"
+ keyfile="${ssh.keyfile}"
+ knownHosts="ssh.knownHosts" />
+ <ivy:sshExec
+ cmd="/data/lombok/stagingCmd/publishToMavenCentral"
+ server="projectlombok.org"
+ username="${ssh.username}"
+ keyfile="${ssh.keyfile}"
+ knownHosts="ssh.knownHosts" />
+ <echo>The artifact has been published to staging. Now go to https://oss.sonatype.org/ and log in as Reinier, then doublecheck if all is well and 'release' it.</echo>
+ <ivy:sshExec
+ cmd="/data/lombok/stagingCmd/showMavenCentralPassword"
+ server="projectlombok.org"
+ username="${ssh.username}"
+ keyfile="${ssh.keyfile}"
+ knownHosts="ssh.knownHosts" />
+ </target>
+
+ <target name="maven.edge" depends="version, dist, javadoc.build" description="Create a maven repo for the current snapshot into a build dir. The intent is for you to put that on a server someplace. Will invoke your local mvn installation.">
+ <delete quiet="true" dir="build/edge-releases" />
+ <mkdir dir="build/edge-releases" />
+
+ <maven.make version-name="edge-SNAPSHOT" />
+
+ <local name="mvn.result" />
+ <exec executable="${exe.mvn}" failifexecutionfails="false" resultproperty="mvn.result">
+ <arg value="deploy:deploy-file" />
+ <arg value="-Dfile=dist/lombok-${lombok.version}.jar" />
+ <arg value="-Dsources=dist/lombok-${lombok.version}-sources.jar" />
+ <arg value="-Djavadoc=dist/lombok-${lombok.version}-javadoc.jar" />
+ <arg value="-DgroupId=org.projectlombok" />
+ <arg value="-DartifactId=lombok" />
+ <arg value="-Dversion=edge-SNAPSHOT" />
+ <arg value="-DpomFile=build/pom.xml" />
+ <arg value="-Durl=file://${basedir}/build/edge-releases" />
+ </exec>
+
+ <fail>
+ mvn is not on your path and/or MAVEN_HOME is not set. Add mvn to your path or set MAVEN_HOME to continue.
+ <condition>
+ <not><isset property="mvn.result" /></not>
+ </condition>
+ </fail>
+ </target>
+</project>