From 13417cf9c6eec555b51da49742e47939d2f5715b Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 19 Oct 2012 22:47:33 -0400 Subject: [PATCH] Exclude submodules from zip downloads (issue 151) --- build.xml | 191 ++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 160 insertions(+), 31 deletions(-) diff --git a/build.xml b/build.xml index 4d326ea..6dca87d 100644 --- a/build.xml +++ b/build.xml @@ -14,9 +14,12 @@ <property name="project.build.dir" value="${basedir}/build" /> <property name="project.deploy.dir" value="${basedir}/deploy" /> <property name="project.war.dir" value="${basedir}/war" /> + <property name="project.jar.dir" value="${basedir}/jar" /> <property name="project.site.dir" value="${basedir}/site" /> <property name="project.resources.dir" value="${basedir}/resources" /> <property name="project.express.dir" value="${basedir}/express" /> + <property name="project.maven.repo.url" value="enter here your Maven repo URL" /> + <property name="project.maven.repo.id" value="gitblit.maven.repo" /> <available property="hasBuildProps" file="${basedir}/build.properties"/> <!-- @@ -85,6 +88,8 @@ </loadfile> <property name="distribution.zipfile" value="gitblit-${gb.version}.zip" /> <property name="distribution.warfile" value="gitblit-${gb.version}.war" /> + <property name="distribution.jarfile" value="gitblit-${gb.version}.jar" /> + <property name="distribution.pomfile" value="${basedir}/pom.xml" /> <property name="fedclient.zipfile" value="fedclient-${gb.version}.zip" /> <property name="manager.zipfile" value="manager-${gb.version}.zip" /> <property name="gbapi.zipfile" value="gbapi-${gb.version}.zip" /> @@ -117,12 +122,21 @@ <delete dir="${project.build.dir}" /> <mkdir dir="${project.build.dir}" /> - <javac debug="true" srcdir="${basedir}/src" destdir="${project.build.dir}"> + <javac debug="true" srcdir="${basedir}/src" destdir="${project.build.dir}" includeantruntime="false"> <include name="com/gitblit/build/Build.java" /> <include name="com/gitblit/Constants.java" /> <include name="com/gitblit/utils/StringUtils.java" /> </javac> - <java classpath="${project.build.dir}" classname="com.gitblit.build.Build" /> + + <java classpath="${project.build.dir}" classname="com.gitblit.build.Build"> + <syspropertyset id="proxy.properties"> + <propertyref prefix="java.net.useSystemProxies"/> + <propertyref prefix="http."/> + <propertyref prefix="https."/> + <propertyref prefix="ftp."/> + <propertyref prefix="socksProxy"/> + </syspropertyset> + </java> <!-- Compile Project --> <path id="master-classpath"> @@ -131,7 +145,7 @@ </fileset> <pathelement path="${project.build.dir}" /> </path> - <javac debug="true" destdir="${project.build.dir}" failonerror="false"> + <javac debug="true" destdir="${project.build.dir}" failonerror="false" includeantruntime="false"> <src path="${basedir}/src" /> <classpath refid="master-classpath" /> </javac> @@ -182,11 +196,13 @@ </jar> <!-- Gitblit library dependencies --> - <mkdir dir="${project.deploy.dir}/lib"/> - <copy todir="${project.deploy.dir}/lib"> + <mkdir dir="${project.deploy.dir}/ext"/> + <copy todir="${project.deploy.dir}/ext"> <fileset dir="${basedir}/ext"> - <exclude name="*-sources.jar" /> - <exclude name="*-javadoc.jar" /> + <exclude name="src/**" /> + <exclude name="junit*.jar" /> + <exclude name="hamcrest*.jar" /> + <exclude name="commons-net*.jar" /> </fileset> </copy> @@ -195,11 +211,14 @@ <param name="docs.output.dir" value="${project.deploy.dir}/docs" /> </antcall> - <!-- Copy the sample Groovy hook scripts --> + <!-- Copy the supported Groovy hook scripts --> <mkdir dir="${project.deploy.dir}/groovy" /> <copy todir="${project.deploy.dir}/groovy"> <fileset dir="${basedir}/groovy"> - <include name="**/*" /> + <include name="sendmail.groovy" /> + <include name="jenkins.groovy" /> + <include name="protect-refs.groovy" /> + <include name="localclone.groovy" /> </fileset> </copy> @@ -224,9 +243,8 @@ <copy todir="${docs.output.dir}"> <!-- Copy selected Gitblit resources --> <fileset dir="${project.resources.dir}"> - <include name="bootstrap.140.css" /> - <include name="bootstrap.gb.css" /> - <include name="markdown.css" /> + <include name="bootstrap/**/*" /> + <include name="gitblit.css" /> <include name="gitblt_25_white.png" /> <include name="gitblt-favicon.png" /> <include name="lock_go_16x16.png" /> @@ -362,11 +380,14 @@ <param name="docs.output.dir" value="${project.war.dir}/WEB-INF/docs" /> </antcall> - <!-- Copy the sample Groovy hook scripts --> + <!-- Copy the supported Groovy hook scripts --> <mkdir dir="${project.war.dir}/WEB-INF/groovy" /> <copy todir="${project.war.dir}/WEB-INF/groovy"> <fileset dir="${basedir}/groovy"> - <include name="**/*" /> + <include name="sendmail.groovy" /> + <include name="jenkins.groovy" /> + <include name="protect-refs.groovy" /> + <include name="localclone.groovy" /> </fileset> </copy> @@ -395,12 +416,13 @@ <mkdir dir="${project.war.dir}/WEB-INF/lib"/> <copy todir="${project.war.dir}/WEB-INF/lib"> <fileset dir="${basedir}/ext"> - <exclude name="*-sources.jar" /> - <exclude name="*-javadoc.jar" /> + <exclude name="src/**" /> <exclude name="jcommander*.jar" /> <exclude name="jetty*.jar" /> <exclude name="junit*.jar" /> + <exclude name="hamcrest*.jar" /> <exclude name="servlet*.jar" /> + <exclude name="javax.servlet*.jar" /> </fileset> </copy> @@ -412,6 +434,7 @@ <exclude name="com/gitblit/tests/" /> <exclude name="com/gitblit/build/**" /> <exclude name="com/gitblit/client/**" /> + <exclude name="com/gitblit/AddIndexedBranch*.class" /> <exclude name="com/gitblit/GitBlitServer*.class" /> <exclude name="com/gitblit/Launcher*.class" /> <exclude name="com/gitblit/MakeCertificate*.class" /> @@ -423,6 +446,76 @@ </target> + <!-- + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Build Gitblit JAR for usage in other projects plug-ins (i.e. Gerrit) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + --> + <target name="buildJAR" depends="compile" description="Build Gitblit JAR"> + + <echo>Building Gitblit JAR ${gb.version}</echo> + + <delete dir="${project.jar.dir}" /> + + <!-- Gitblit classes --> + <mkdir dir="${project.jar.dir}"/> + <copy todir="${project.jar.dir}"> + <fileset dir="${project.build.dir}"> + <exclude name="WEB-INF/" /> + <exclude name="com/gitblit/tests/" /> + <exclude name="com/gitblit/build/**" /> + <exclude name="com/gitblit/client/**" /> + <exclude name="com/gitblit/AddIndexedBranch*.class" /> + <exclude name="com/gitblit/GitBlitServer*.class" /> + <exclude name="com/gitblit/Launcher*.class" /> + <exclude name="com/gitblit/MakeCertificate*.class" /> + </fileset> + </copy> + + <!-- Build the JAR file --> + <jar basedir="${project.jar.dir}" destfile="${distribution.jarfile}" compress="true" /> + </target> + + <!-- + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Build pom.xml for GitBlit JAR Maven module + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + --> + <target name="buildMaven" depends="buildJAR" description="Build pom.xml for Gitblit JAR Maven module"> + <copy tofile="${distribution.pomfile}" file="${distribution.pomfileTmplt}"/> + <replace file="${distribution.pomfile}" token="@gb.version@" value="${gb.version}" /> + </target> + + <!-- + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Install Gitblit JAR for usage as Maven module + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + --> + <target name="installMaven" depends="buildMaven" description="Install Gitblit JAR as Maven module"> + <exec executable="mvn"> + <arg value="install:install-file" /> + <arg value="-Dfile=${distribution.jarfile}" /> + <arg value="-DpomFile=${distribution.pomfile}" /> + <arg value="-DcreateChecksum=true" /> + </exec> + </target> + + <!-- + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Upload Gitblit JAR to remote Maven repository + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + --> + <target name="uploadMaven" depends="buildJAR" description="Upload Gitblit JAR to remote Maven repository"> + <exec executable="mvn"> + <arg value="deploy:deploy-file" /> + <arg value="-Dfile=${distribution.jarfile}" /> + <arg value="-DpomFile=${distribution.pomfile}" /> + <arg value="-Durl=${project.maven.repo.url}" /> + <arg value="-DrepositoryId=${project.maven.repo.id}" /> + <arg value="-DcreateChecksum=true" /> + </exec> + </target> + <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Build the stand-alone, command-line Gitblit Federation Client @@ -441,6 +534,7 @@ <exclude name="org.slf4j." /> <exclude name="com.beust." /> <exclude name="com.google." /> + <exclude name="com.unboundid." /> </classfilter> <classpath refid="master-classpath" /> <manifest> @@ -495,6 +589,16 @@ <copy tofile="${deployments.root}/WEB-INF/reference.properties" file="${basedir}/distrib/gitblit.properties"/> + <!-- Copy the supported Groovy hook scripts --> + <mkdir dir="${deployments.root}/WEB-INF/groovy" /> + <copy todir="${deployments.root}/WEB-INF/groovy"> + <fileset dir="${basedir}/groovy"> + <include name="sendmail.groovy" /> + <include name="jenkins.groovy" /> + <include name="protect-refs.groovy" /> + </fileset> + </copy> + <!-- Build the WAR web.xml from the prototype web.xml and gitblit.properties --> <!-- THIS FILE IS NOT OVERRIDDEN ONCE IT IS BUILT!!! --> <java classpath="${project.build.dir}" classname="com.gitblit.build.BuildWebXml"> @@ -521,18 +625,18 @@ <mkdir dir="${deployments.root}/WEB-INF/lib"/> <copy todir="${deployments.root}/WEB-INF/lib"> <fileset dir="${basedir}/ext"> - <exclude name="*-sources.jar" /> - <exclude name="*-javadoc.jar" /> + <exclude name="src/**" /> <exclude name="jcommander*.jar" /> <exclude name="jetty*.jar" /> <exclude name="junit*.jar" /> + <exclude name="hamcrest*.jar" /> <exclude name="servlet*.jar" /> + <exclude name="javax.servlet*.jar" /> </fileset> </copy> <!-- Gitblit classes --> - <mkdir dir="${deployments.root}/WEB-INF/classes"/> - <copy todir="${deployments.root}/WEB-INF/classes"> + <jar destfile="${deployments.root}/WEB-INF/lib/gitblit-${gb.version}.jar"> <fileset dir="${project.build.dir}"> <exclude name="WEB-INF/" /> <exclude name="com/gitblit/tests/" /> @@ -542,7 +646,7 @@ <exclude name="com/gitblit/Launcher*.class" /> <exclude name="com/gitblit/MakeCertificate*.class" /> </fileset> - </copy> + </jar> <!-- Build Express Zip file --> <zip destfile="${express.zipfile}"> @@ -564,7 +668,9 @@ <resource file="${basedir}/src/com/gitblit/client/splash.png" /> <resource file="${basedir}/resources/gitblt-favicon.png" /> <resource file="${basedir}/resources/gitweb-favicon.png" /> + <resource file="${basedir}/resources/git-orange-16x16.png" /> <resource file="${basedir}/resources/user_16x16.png" /> + <resource file="${basedir}/resources/users_16x16.png" /> <resource file="${basedir}/resources/settings_16x16.png" /> <resource file="${basedir}/resources/lock_go_16x16.png" /> <resource file="${basedir}/resources/lock_pull_16x16.png" /> @@ -579,8 +685,13 @@ <resource file="${basedir}/resources/search-icon.png" /> <resource file="${basedir}/resources/commit_changes_16x16.png" /> <resource file="${basedir}/resources/commit_merge_16x16.png" /> + <resource file="${basedir}/resources/commit_divide_16x16.png" /> <resource file="${basedir}/resources/blank.png" /> <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp.properties" /> + <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp_es.properties" /> + <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp_ja.properties" /> + <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp_ko.properties" /> + <resource file="${basedir}/src/com/gitblit/wicket/GitBlitWebApp_pl.properties" /> <class name="com.gitblit.client.GitblitManagerLauncher" /> <classfilter> @@ -590,6 +701,7 @@ <exclude name="org.slf4j." /> <exclude name="com.beust." /> <exclude name="com.google." /> + <exclude name="com.unboundid." /> </classfilter> <classpath refid="master-classpath" /> <manifest> @@ -670,12 +782,10 @@ <include name="NOTICE" /> </fileset> <fileset dir="${basedir}/ext"> + <exclude name="src/**" /> <include name="gson*.jar" /> - <exclude name="gson*-sources.jar" /> - <exclude name="gson*-javadoc.jar" /> <include name="rome*.jar" /> - <exclude name="rome*-sources.jar" /> - <exclude name="rome*-javadoc.jar" /> + <include name="jdom*.jar" /> </fileset> </zip> </target> @@ -696,9 +806,8 @@ <copy todir="${project.site.dir}"> <!-- Copy selected Gitblit resources --> <fileset dir="${project.resources.dir}"> - <include name="bootstrap.140.css" /> - <include name="bootstrap.gb.css" /> - <include name="markdown.css" /> + <include name="bootstrap/**/*" /> + <include name="gitblit.css" /> <include name="gitblt_25_white.png" /> <include name="gitblt-favicon.png" /> <include name="lock_go_16x16.png" /> @@ -844,13 +953,33 @@ <delete dir="${project.express.dir}" /> </target> + + <!-- + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Update the gh-pages branch with the current site + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + --> + <target name="updateGhPages" depends="buildSite"> + <!-- Build gh-pages branch --> + <java classpath="${project.build.dir}" classname="com.gitblit.build.BuildGhPages"> + <classpath refid="master-classpath" /> + <arg value="--sourceFolder" /> + <arg value="${basedir}/site" /> + + <arg value="--repository" /> + <arg value="${basedir}" /> + + <arg value="--obliterate" /> + </java> + </target> + <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Publish binaries to Google Code ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> - <target name="publishBinaries" depends="buildGO,buildWAR,buildExpress,buildFederationClient,buildManager" description="Publish the Gitblit binaries to Google Code"> + <target name="publishBinaries" depends="buildGO,buildWAR,buildExpress,buildFederationClient,buildManager,buildApiLibrary" description="Publish the Gitblit binaries to Google Code"> <echo>Uploading Gitblit ${gb.version} binaries</echo> @@ -923,7 +1052,7 @@ You must add ext/commons-net-1.4.0.jar to your ANT classpath. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> - <target name="publishSite" depends="buildSite" description="Publish the Gitblit site to a webserver (requires ext/commons-net-1.4.0.jar)" > + <target name="publishSite" depends="buildSite,updateGhPages" description="Publish the Gitblit site to a webserver (requires ext/commons-net-1.4.0.jar)" > <echo>Uploading Gitblit ${gb.version} website</echo> @@ -949,4 +1078,4 @@ <delete dir="${project.war.dir}" /> <delete dir="${project.deploy.dir}" /> </target> -</project> +</project> -- Gitblit v1.9.1