2008-10-07 18:30:07 +00:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!-- You may freely edit this file. See commented blocks below for -->
|
|
|
|
<!-- some examples of how to customize the build. -->
|
|
|
|
<!-- (If you delete it and reopen the project it will be recreated.) -->
|
2008-11-28 16:07:29 +00:00
|
|
|
<!-- By default, only the Clean and Build commands use this build script. -->
|
|
|
|
<!-- Commands such as Run, Debug, and Test only use this build script if -->
|
|
|
|
<!-- the Compile on Save feature is turned off for the project. -->
|
|
|
|
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
|
|
|
|
<!-- in the project's Project Properties dialog box.-->
|
2008-10-07 18:30:07 +00:00
|
|
|
<project name="BOB" default="default" basedir=".">
|
|
|
|
<description>Builds, tests, and runs the project BOB.</description>
|
|
|
|
<import file="nbproject/build-impl.xml"/>
|
|
|
|
<!--
|
|
|
|
|
|
|
|
There exist several targets which are by default empty and which can be
|
|
|
|
used for execution of your tasks. These targets are usually executed
|
|
|
|
before and after some main targets. They are:
|
|
|
|
|
|
|
|
-pre-init: called before initialization of project properties
|
|
|
|
-post-init: called after initialization of project properties
|
|
|
|
-pre-compile: called before javac compilation
|
|
|
|
-post-compile: called after javac compilation
|
|
|
|
-pre-compile-single: called before javac compilation of single file
|
|
|
|
-post-compile-single: called after javac compilation of single file
|
|
|
|
-pre-compile-test: called before javac compilation of JUnit tests
|
|
|
|
-post-compile-test: called after javac compilation of JUnit tests
|
|
|
|
-pre-compile-test-single: called before javac compilation of single JUnit test
|
|
|
|
-post-compile-test-single: called after javac compilation of single JUunit test
|
|
|
|
-pre-jar: called before JAR building
|
|
|
|
-post-jar: called after JAR building
|
|
|
|
-post-clean: called after cleaning build products
|
|
|
|
|
|
|
|
(Targets beginning with '-' are not intended to be called on their own.)
|
|
|
|
|
|
|
|
Example of inserting an obfuscator after compilation could look like this:
|
|
|
|
|
|
|
|
<target name="-post-compile">
|
|
|
|
<obfuscate>
|
|
|
|
<fileset dir="${build.classes.dir}"/>
|
|
|
|
</obfuscate>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
For list of available properties check the imported
|
|
|
|
nbproject/build-impl.xml file.
|
|
|
|
|
|
|
|
|
|
|
|
Another way to customize the build is by overriding existing main targets.
|
|
|
|
The targets of interest are:
|
|
|
|
|
|
|
|
-init-macrodef-javac: defines macro for javac compilation
|
|
|
|
-init-macrodef-junit: defines macro for junit execution
|
|
|
|
-init-macrodef-debug: defines macro for class debugging
|
|
|
|
-init-macrodef-java: defines macro for class execution
|
|
|
|
-do-jar-with-manifest: JAR building (if you are using a manifest)
|
|
|
|
-do-jar-without-manifest: JAR building (if you are not using a manifest)
|
|
|
|
run: execution of project
|
|
|
|
-javadoc-build: Javadoc generation
|
|
|
|
test-report: JUnit report generation
|
|
|
|
|
|
|
|
An example of overriding the target for project execution could look like this:
|
|
|
|
|
|
|
|
<target name="run" depends="BOB-impl.jar">
|
|
|
|
<exec dir="bin" executable="launcher.exe">
|
|
|
|
<arg file="${dist.jar}"/>
|
|
|
|
</exec>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
Notice that the overridden target depends on the jar target and not only on
|
|
|
|
the compile target as the regular run target does. Again, for a list of available
|
|
|
|
properties which you can use, check the target you are overriding in the
|
|
|
|
nbproject/build-impl.xml file.
|
|
|
|
|
|
|
|
-->
|
2010-01-02 22:58:50 +00:00
|
|
|
<target depends="jar" description="Build BOB into a SINGLE JAR." name="onejar">
|
2010-01-02 14:34:20 +00:00
|
|
|
<!-- Make needed working dirs -->
|
|
|
|
<mkdir dir="${dist.dir}/lib" />
|
|
|
|
<mkdir dir="${dist.dir}/classes" />
|
|
|
|
|
|
|
|
<!-- Copy jars -->
|
|
|
|
<copy todir="${dist.dir}/lib" flatten="true" >
|
|
|
|
<path>
|
|
|
|
<pathelement path="${javac.classpath}" />
|
|
|
|
</path>
|
|
|
|
</copy>
|
|
|
|
<copy todir="${dist.dir}/lib" file="../../installer/lib/jbigi/jbigi.jar" />
|
|
|
|
|
|
|
|
<!-- Extract the classes inside the jar files -->
|
|
|
|
<unjar dest="${dist.dir}/classes" >
|
|
|
|
<fileset dir="${dist.dir}/lib" >
|
|
|
|
<include name="**/*.jar" />
|
|
|
|
</fileset>
|
|
|
|
</unjar>
|
|
|
|
|
|
|
|
<!-- Recombine the classes into a new jar file -->
|
|
|
|
<jar jarfile="${dist.dir}/lib/all-in-one.jar" >
|
|
|
|
<fileset dir="${dist.dir}/classes" />
|
|
|
|
</jar>
|
|
|
|
|
|
|
|
<!-- Clean up work area -->
|
|
|
|
<delete dir="${dist.dir}/classes" followsymlinks="false" includeemptydirs="true"/>
|
|
|
|
|
|
|
|
<!-- Make the single jar file -->
|
|
|
|
<jar jarfile="dist/BOB-one.jar" >
|
2010-01-01 21:28:28 +00:00
|
|
|
<zipfileset src="${dist.jar}" excludes="META-INF/*" />
|
2010-01-02 14:34:20 +00:00
|
|
|
<zipfileset src="${dist.dir}/lib/all-in-one.jar" excludes="**/META-INF/*" />
|
2010-01-01 21:28:28 +00:00
|
|
|
<manifest>
|
2010-01-02 14:34:20 +00:00
|
|
|
<attribute name="Main-Class" value="net.i2p.BOB.Main" />
|
2010-01-01 21:28:28 +00:00
|
|
|
</manifest>
|
|
|
|
</jar>
|
2010-01-02 14:34:20 +00:00
|
|
|
|
|
|
|
<!-- Clean up the fake jar file -->
|
|
|
|
<delete file="${dist.dir}/lib/all-in-one.jar" />
|
2010-01-01 21:28:28 +00:00
|
|
|
</target>
|
2008-10-07 18:30:07 +00:00
|
|
|
</project>
|