mirror of https://github.com/apache/cassandra
Offline build mode
When all dependencies are already in the local `~/.m2/repository/` we should not be needing an internet connection. ("Offline" mode should be automatic)
patch by Mick Semb Wever; reviewed by Brandon Williams for CASSANDRA-16559
This commit is contained in:
parent
a1285ac92d
commit
17d379ca1b
|
|
@ -18,46 +18,45 @@
|
|||
~ under the License.
|
||||
-->
|
||||
<project basedir="." name="apache-cassandra--resolver-tasks"
|
||||
xmlns:resolver="antlib:org.apache.maven.resolver.ant">
|
||||
xmlns:resolver="antlib:org.apache.maven.resolver.ant"
|
||||
xmlns:if="ant:if"
|
||||
xmlns:unless="ant:unless">
|
||||
|
||||
<!-- details of what version of Resolver ANT Tasks to fetch -->
|
||||
<property name="resolver-ant-tasks.version" value="1.3.0" />
|
||||
<property name="resolver-ant-tasks.local" value="${user.home}/.m2/repository/org/apache/maven/resolver/maven-resolver-ant-tasks"/>
|
||||
<property name="resolver-ant-tasks.local" value="${user.home}/.m2/repository/org/apache/maven/resolver/maven-resolver-ant-tasks/${resolver-ant-tasks.version}/maven-resolver-ant-tasks-${resolver-ant-tasks.version}.jar"/>
|
||||
<property name="resolver-ant-tasks.url" value="https://repo1.maven.org/maven2/org/apache/maven/resolver/maven-resolver-ant-tasks" />
|
||||
<condition property="resolver-ant-tasks.jar.exists">
|
||||
<available file="${resolver-ant-tasks.local}" />
|
||||
</condition>
|
||||
|
||||
<!-- version of lib/ downloads -->
|
||||
<property name="lib.download.sha" value="1371883db3d8bf7d7c54e0baaca89c6c2d2a5abe"/>
|
||||
|
||||
<condition property="resolver-ant-tasks.jar.exists">
|
||||
<available file="${build.dir}/maven-resolver-ant-tasks-${resolver-ant-tasks.version}-uber.jar" />
|
||||
<!-- jstackunit is not in maven central -->
|
||||
<property name="jstackunit.local" value="${user.home}/.m2/repository/org/krummas/junit/jstackjunit/0.0.1/jstackjunit-0.0.1.jar"/>
|
||||
<condition property="jstackunit.jar.exists">
|
||||
<available file="${jstackunit.local}" />
|
||||
</condition>
|
||||
|
||||
<condition property="resolver-ant-tasks.jar.local">
|
||||
<available file="${resolver-ant-tasks.local}/${resolver-ant-tasks.version}/maven-resolver-${resolver-ant-tasks.version}-uber.jar" />
|
||||
</condition>
|
||||
|
||||
<path id="resolver-ant-tasks.classpath" path="${build.dir}/maven-resolver-ant-tasks-${resolver-ant-tasks.version}-uber.jar" />
|
||||
<path id="resolver-ant-tasks.classpath" path="${resolver-ant-tasks.local}" />
|
||||
|
||||
<!--
|
||||
Fetch Resolver Ant Tasks and Cassandra's dependencies
|
||||
These targets are intentionally free of dependencies so that they
|
||||
can be run stand-alone from a binary release artifact.
|
||||
Fetch Resolver Ant Tasks and Cassandra's dependencies.
|
||||
-->
|
||||
<target name="_resolver_localrepo" unless="resolver-ant-tasks.jar.exists" if="resolver-ant-tasks.jar.local"
|
||||
depends="init" description="Fetch Resolver ANT Tasks from Maven Local Repository">
|
||||
|
||||
<copy file="${resolver-ant-tasks.local}/${resolver-ant-tasks.version}/maven-resolver-ant-tasks-${resolver-ant-tasks.version}-uber.jar"
|
||||
tofile="${build.dir}/resolver-ant-tasks-${resolver-ant-tasks.version}.jar" quiet="true"/>
|
||||
<target name="_resolver_download" unless="resolver-ant-tasks.jar.exists" description="Fetch Resolver ANT Tasks from Maven Central Repository">
|
||||
<echo>Downloading Resolver ANT Tasks...</echo>
|
||||
<mkdir dir="${user.home}/.m2/repository/org/apache/maven/resolver/maven-resolver-ant-tasks/${resolver-ant-tasks.version}" />
|
||||
|
||||
<property name="resolver-ant-tasks.jar.exists" value="true"/>
|
||||
<get src="${resolver-ant-tasks.url}/${resolver-ant-tasks.version}/maven-resolver-ant-tasks-${resolver-ant-tasks.version}-uber.jar"
|
||||
dest="${resolver-ant-tasks.local}" usetimestamp="true" quiet="true"/>
|
||||
</target>
|
||||
|
||||
<target name="_resolver_download" depends="init,_resolver_localrepo" unless="resolver-ant-tasks.jar.exists"
|
||||
description="Fetch Resolver ANT Tasks from Maven Central Repositroy">
|
||||
|
||||
<echo>Downloading Resolver ANT Tasks...</echo>
|
||||
<get src="${resolver-ant-tasks.url}/${resolver-ant-tasks.version}/maven-resolver-ant-tasks-${resolver-ant-tasks.version}-uber.jar"
|
||||
dest="${build.dir}/maven-resolver-ant-tasks-${resolver-ant-tasks.version}-uber.jar" usetimestamp="true" quiet="true"/>
|
||||
<copy file="${build.dir}/maven-resolver-ant-tasks-${resolver-ant-tasks.version}-uber.jar"
|
||||
tofile="${resolver-ant-tasks.local}/${resolver-ant-tasks.version}/maven-resolver-ant-tasks-${resolver-ant-tasks.version}.jar" quiet="true"/>
|
||||
<target name="_jstackunit_download" unless="jstackunit.jar.exists" description="Fetch jstackunit">
|
||||
<echo>Downloading jstackunit...</echo>
|
||||
<mkdir dir="${user.home}/.m2/repository/org/krummas/junit/jstackjunit/0.0.1" />
|
||||
<get src="https://github.com/krummas/jstackjunit/releases/download/v0.0.1/jstackjunit-0.0.1.jar" dest="${jstackunit.local}" usetimestamp="true" quiet="true"/>
|
||||
</target>
|
||||
|
||||
<target name="resolver-init" depends="init,_resolver_download" unless="resolver-ant-tasks.initialized" description="Initialize Resolver ANT Tasks">
|
||||
|
|
@ -145,7 +144,7 @@
|
|||
<property name="resolver-ant-tasks.initialized" value="true"/>
|
||||
</target>
|
||||
|
||||
<target name="resolver-retrieve-build" depends="resolver-init,write-poms">
|
||||
<target name="resolver-retrieve-build" depends="resolver-init,_jstackunit_download,write-poms">
|
||||
<resolver:pom file="${build.dir}/${final.name}.pom" id="all-pom"/>
|
||||
<resolver:pom file="${build.dir}/tmp-${final.name}-deps.pom" id="pom-deps"/>
|
||||
|
||||
|
|
@ -156,24 +155,14 @@
|
|||
</resolver:resolve>
|
||||
<resolver:resolve>
|
||||
<remoterepos refid="all"/>
|
||||
<dependencies pomRef="pom-deps">
|
||||
<exclusion artifactId="tools"/>
|
||||
<exclusion artifactId="asm"/>
|
||||
<exclusion artifactId="asm-analysis"/>
|
||||
<exclusion artifactId="asm-commons"/>
|
||||
<exclusion artifactId="asm-tree"/>
|
||||
<exclusion artifactId="asm-util"/>
|
||||
<exclusion artifactId="asm-xml"/>
|
||||
</dependencies>
|
||||
<dependencies pomRef="pom-deps"/>
|
||||
<files dir="${test.lib}/jars" layout="{artifactId}-{version}-{classifier}.{extension}" scopes="test,!provide,!system"/>
|
||||
</resolver:resolve>
|
||||
|
||||
<mkdir dir="${user.home}/.m2/repository/org/krummas/junit/jstackjunit/0.0.1" />
|
||||
<get src="https://github.com/krummas/jstackjunit/releases/download/v0.0.1/jstackjunit-0.0.1.jar" dest="${user.home}/.m2/repository/org/krummas/junit/jstackjunit/0.0.1/jstackjunit-0.0.1.jar" usetimestamp="true" quiet="true"/>
|
||||
<copy todir="${test.lib}/jars/" file="${user.home}/.m2/repository/org/krummas/junit/jstackjunit/0.0.1/jstackjunit-0.0.1.jar" quiet="true"/>
|
||||
<copy todir="${test.lib}/jars/" file="${jstackunit.local}" quiet="true"/>
|
||||
|
||||
<!-- jacoco agent jar comes wrapped in a jar -->
|
||||
<unzip src="${test.lib}/jars/org.jacoco.agent-${jacoco.version}.jar" dest="${build.dir.lib}/jars">
|
||||
<unzip src="${user.home}/.m2/repository/org/jacoco/org.jacoco.agent/${jacoco.version}/org.jacoco.agent-${jacoco.version}.jar" dest="${build.dir.lib}/jars">
|
||||
<patternset>
|
||||
<include name="*.jar"/>
|
||||
</patternset>
|
||||
|
|
@ -193,17 +182,17 @@
|
|||
<mkdir dir="${build.lib}/sigar-bin"/>
|
||||
|
||||
<!-- files.pythonhosted.org -->
|
||||
<get src="https://files.pythonhosted.org/packages/59/a0/cf4cd997e1750f0c2d91c6ea5abea218251c43c3581bcc2f118b00baf5cf/futures-2.1.6-py2.py3-none-any.whl" dest="${user.home}/.m2/repository/org/apache/cassandra/deps/futures-2.1.6-py2.py3-none-any.zip" usetimestamp="true" quiet="true"/>
|
||||
<get src="https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl" dest="${user.home}/.m2/repository/org/apache/cassandra/deps/six-1.12.0-py2.py3-none-any.zip" usetimestamp="true" quiet="true"/>
|
||||
<get src="https://files.pythonhosted.org/packages/59/a0/cf4cd997e1750f0c2d91c6ea5abea218251c43c3581bcc2f118b00baf5cf/futures-2.1.6-py2.py3-none-any.whl" dest="${user.home}/.m2/repository/org/apache/cassandra/deps/futures-2.1.6-py2.py3-none-any.zip" usetimestamp="true" quiet="true" skipexisting="true"/>
|
||||
<get src="https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl" dest="${user.home}/.m2/repository/org/apache/cassandra/deps/six-1.12.0-py2.py3-none-any.zip" usetimestamp="true" quiet="true" skipexisting="true"/>
|
||||
|
||||
<!-- python-driver -->
|
||||
<get src="https://raw.githubusercontent.com/apache/cassandra/${lib.download.sha}/lib/cassandra-driver-internal-only-3.25.0.zip" dest="${user.home}/.m2/repository/org/apache/cassandra/deps/cassandra-driver-internal-only-3.25.0.zip" usetimestamp="true" quiet="true"/>
|
||||
<get src="https://raw.githubusercontent.com/apache/cassandra/${lib.download.sha}/lib/cassandra-driver-internal-only-3.25.0.zip" dest="${user.home}/.m2/repository/org/apache/cassandra/deps/cassandra-driver-internal-only-3.25.0.zip" usetimestamp="true" quiet="true" skipexisting="true"/>
|
||||
<!-- the following would be better, but its subdirectory is python-driver-3.25.0 instead of cassandra-driver-3.25.0 -->
|
||||
<!--get src="https://codeload.github.com/datastax/python-driver/zip/refs/tags/3.25.0" dest="${user.home}/.m2/repository/org/apache/cassandra/deps/cassandra-driver-internal-only-3.25.0.zip" usetimestamp="true" quiet="true"/-->
|
||||
|
||||
<!-- apache/cassandra/lib -->
|
||||
<get src="https://raw.githubusercontent.com/apache/cassandra/${lib.download.sha}/lib/geomet-0.1.0.zip" dest="${user.home}/.m2/repository/org/apache/cassandra/deps/geomet-0.1.0.zip" usetimestamp="true" quiet="true"/>
|
||||
<get dest="${user.home}/.m2/repository/org/apache/cassandra/deps/sigar-bin/" quiet="true" usetimestamp="true">
|
||||
<get src="https://raw.githubusercontent.com/apache/cassandra/${lib.download.sha}/lib/geomet-0.1.0.zip" dest="${user.home}/.m2/repository/org/apache/cassandra/deps/geomet-0.1.0.zip" usetimestamp="true" quiet="true" skipexisting="true"/>
|
||||
<get dest="${user.home}/.m2/repository/org/apache/cassandra/deps/sigar-bin/" quiet="true" usetimestamp="true" skipexisting="true">
|
||||
<url url="https://raw.githubusercontent.com/apache/cassandra/${lib.download.sha}/lib/sigar-bin/libsigar-amd64-freebsd-6.so"/>
|
||||
<url url="https://raw.githubusercontent.com/apache/cassandra/${lib.download.sha}/lib/sigar-bin/libsigar-amd64-linux.so"/>
|
||||
<url url="https://raw.githubusercontent.com/apache/cassandra/${lib.download.sha}/lib/sigar-bin/libsigar-amd64-solaris.so"/>
|
||||
|
|
|
|||
30
build.xml
30
build.xml
|
|
@ -267,21 +267,15 @@
|
|||
<pathelement location="${build.classes.main}" />
|
||||
<fileset dir="${build.dir.lib}">
|
||||
<include name="**/*.jar" />
|
||||
<exclude name="**/*-sources.jar"/>
|
||||
<exclude name="**/ant-*.jar"/>
|
||||
</fileset>
|
||||
</path>
|
||||
<path id="cassandra.classpath.test">
|
||||
<file file="${build.dir}/${final.name}.jar"/> <!-- we need the jar for tests and benchmarks (multi-version jar) -->
|
||||
<fileset dir="${build.dir.lib}">
|
||||
<include name="**/*.jar" />
|
||||
<exclude name="**/*-sources.jar"/>
|
||||
<exclude name="**/ant-*.jar"/>
|
||||
</fileset>
|
||||
<fileset dir="${test.lib}/jars">
|
||||
<include name="**/*.jar" />
|
||||
<exclude name="**/*-sources.jar"/>
|
||||
<exclude name="**/ant-*.jar"/>
|
||||
</fileset>
|
||||
</path>
|
||||
|
||||
|
|
@ -530,7 +524,9 @@
|
|||
<dependency groupId="com.boundary" artifactId="high-scale-lib" version="1.0.6"/>
|
||||
<dependency groupId="com.github.jbellis" artifactId="jamm" version="${jamm.version}"/>
|
||||
<dependency groupId="org.yaml" artifactId="snakeyaml" version="1.26"/>
|
||||
<dependency groupId="junit" artifactId="junit" version="4.12" scope="test"/>
|
||||
<dependency groupId="junit" artifactId="junit" version="4.12" scope="test">
|
||||
<exclusion groupId="org.hamcrest" artifactId="hamcrest-core"/>
|
||||
</dependency>
|
||||
<dependency groupId="org.mockito" artifactId="mockito-core" version="3.2.4" scope="test"/>
|
||||
<dependency groupId="org.quicktheories" artifactId="quicktheories" version="0.26" scope="test"/>
|
||||
<dependency groupId="com.google.code.java-allocation-instrumenter" artifactId="java-allocation-instrumenter" version="${allocation-instrumenter.version}" />
|
||||
|
|
@ -652,7 +648,10 @@
|
|||
<dependency groupId="org.junit" artifactId="junit-bom" version="5.6.0" type="pom" scope="test"/>
|
||||
<!-- when updating assertj, make sure to also update the corresponding junit-bom dependency -->
|
||||
<dependency groupId="org.assertj" artifactId="assertj-core" version="3.15.0" scope="test"/>
|
||||
<dependency groupId="org.awaitility" artifactId="awaitility" version="4.0.3" scope="test"/>
|
||||
<dependency groupId="org.awaitility" artifactId="awaitility" version="4.0.3" scope="test">
|
||||
<exclusion groupId="org.hamcrest" artifactId="hamcrest"/>
|
||||
</dependency>
|
||||
<dependency groupId="org.hamcrest" artifactId="hamcrest" version="2.2" scope="test"/>
|
||||
</dependencyManagement>
|
||||
<developer id="adelapena" name="Andres de la Peña"/>
|
||||
<developer id="alakshman" name="Avinash Lakshman"/>
|
||||
|
|
@ -725,6 +724,7 @@
|
|||
<dependency groupId="org.junit" artifactId="junit-bom" type="pom" scope="test"/>
|
||||
<dependency groupId="org.assertj" artifactId="assertj-core" scope="test"/>
|
||||
<dependency groupId="org.awaitility" artifactId="awaitility" scope="test"/>
|
||||
<dependency groupId="org.hamcrest" artifactId="hamcrest" scope="test"/>
|
||||
<!-- coverage debs -->
|
||||
<dependency groupId="org.jacoco" artifactId="org.jacoco.agent" scope="test"/>
|
||||
<dependency groupId="org.jacoco" artifactId="org.jacoco.ant" scope="test"/>
|
||||
|
|
@ -918,6 +918,10 @@
|
|||
</target>
|
||||
|
||||
<target name="stress-build" depends="build" description="build stress tool">
|
||||
<antcall target="_stress_build"/>
|
||||
</target>
|
||||
|
||||
<target name="_stress_build">
|
||||
<mkdir dir="${stress.build.classes}" />
|
||||
<javac compiler="modern" debug="true" debuglevel="${debuglevel}"
|
||||
source="${source.version}" target="${target.version}"
|
||||
|
|
@ -968,6 +972,10 @@
|
|||
</target>
|
||||
|
||||
<target name="fqltool-build" depends="build" description="build fqltool">
|
||||
<antcall target="_fqltool_build"/>
|
||||
</target>
|
||||
|
||||
<target name="_fqltool_build">
|
||||
<mkdir dir="${fqltool.build.classes}" />
|
||||
<javac compiler="modern" debug="true" debuglevel="${debuglevel}"
|
||||
source="${source.version}" target="${target.version}"
|
||||
|
|
@ -1022,7 +1030,7 @@
|
|||
</jar>
|
||||
</target>
|
||||
<target name="jar"
|
||||
depends="_main-jar, build-test, stress-build, fqltool-build, write-poms"
|
||||
depends="_main-jar,build-test,stress-build,fqltool-build,write-poms"
|
||||
description="Assemble Cassandra JAR files">
|
||||
<!-- Stress jar -->
|
||||
<manifest file="${stress.manifest}">
|
||||
|
|
@ -1070,7 +1078,7 @@
|
|||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="_artifacts-init" depends="jar,javadoc,resolver-dist-lib">
|
||||
<target name="_artifacts-init" depends="jar,javadoc">
|
||||
<mkdir dir="${dist.dir}"/>
|
||||
<!-- fix the control linefeed so that builds on windows works on linux -->
|
||||
<fixcrlf srcdir="bin" includes="**/*" eol="lf" eof="remove" />
|
||||
|
|
@ -1267,7 +1275,7 @@
|
|||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="build-test" depends="_main-jar, stress-build, fqltool-build,resolver-dist-lib" description="Compile test classes">
|
||||
<target name="build-test" depends="_main-jar,stress-build,fqltool-build,resolver-dist-lib" description="Compile test classes">
|
||||
<antcall target="_build-test"/>
|
||||
</target>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue