Skip to content

Commit 52f6fb4

Browse files
committed
Add support for libraries (lib/).
1 parent e88c5c0 commit 52f6fb4

3 files changed

Lines changed: 34 additions & 13 deletions

File tree

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
build
2-
SJP.jar
2+
dist

build.xml

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,36 @@
11
<?xml version="1.0"?>
22
<project name="SampleJavaProject" default="jar">
3-
<property name="jar.file" value="SJP.jar"/>
3+
<!-- Project-specific configuration -->
4+
<property name="package" value="sample.java.project"/>
5+
<property name="main.class" value="${package}.${ant.project.name}"/>
6+
<property name="jar.file" value="${ant.project.name}.jar"/>
7+
8+
<!-- Standard Directory Layout -->
49
<property name="src.dir" value="src"/>
5-
<property name="build.dir" value="build"/>
610
<property name="test.dir" value="test"/>
7-
<property name="doc.dir" value="doc"/>
11+
<property name="build.dir" value="build"/>
812
<property name="build.classes.dir" value="${build.dir}/classes"/>
913
<property name="test.classes.dir" value="${build.dir}/test"/>
14+
<property name="dist.dir" value="dist"/>
15+
<property name="lib.dir" value="lib"/>
16+
<property name="doc.dir" value="doc"/>
17+
18+
<!-- Project classpath -->
19+
<path id="build.classpath">
20+
<fileset dir="${lib.dir}">
21+
<include name="*.jar"/>
22+
</fileset>
23+
</path>
24+
25+
<!-- Additional build tools -->
1026
<taskdef resource="checkstyletask.properties"/>
1127
<taskdef resource="proguard/ant/task.properties"/>
1228

29+
<!-- Targets -->
30+
1331
<target name="init">
1432
<mkdir dir="${build.classes.dir}"/>
33+
<mkdir dir="${dist.dir}"/>
1534
</target>
1635

1736
<target name="compile" depends="init"
@@ -20,6 +39,7 @@
2039
optimize="on" debug="on" deprecation="on"
2140
includeantruntime="false">
2241
<compilerarg value="-Xlint"/>
42+
<classpath refid="build.classpath"/>
2343
</javac>
2444
<copy todir="${build.classes.dir}">
2545
<fileset dir="${src.dir}" excludes="**/*.java"/>
@@ -28,21 +48,21 @@
2848

2949
<target name="jar" depends="compile"
3050
description="Generate the jarfile distributable.">
31-
<jar destfile="${jar.file}" basedir="${build.classes.dir}">
51+
<jar destfile="${dist.dir}/${jar.file}" basedir="${build.classes.dir}">
52+
<zipgroupfileset dir="${lib.dir}" includes="*.jar"/>
3253
<manifest>
33-
<attribute name="Main-Class"
34-
value="sample.java.project.SampleJavaProject"/>
54+
<attribute name="Main-Class" value="${main.class}"/>
3555
</manifest>
3656
</jar>
3757
</target>
3858

3959
<target name="run" depends="jar" description="Run the application.">
40-
<java jar="${jar.file}" fork="true"/>
60+
<java jar="${dist.dir}/${jar.file}" fork="true"/>
4161
</target>
4262

4363
<target name="clean" description="Delete all generated files.">
4464
<delete dir="${build.dir}"/>
45-
<delete file="${jar.file}"/>
65+
<delete dir="${dist.dir}"/>
4666
</target>
4767

4868
<target name="javadoc" description="Generate Javadoc HTML.">
@@ -69,15 +89,15 @@
6989
<target name="optimize" depends="jar">
7090
<proguard>
7191
<libraryjar path="${java.home}/lib/rt.jar"/>
72-
<injar file="${jar.file}"/>
73-
<outjar file="out.${jar.file}"/>
92+
<injar file="${dist.dir}/${jar.file}"/>
93+
<outjar file="${dist.dir}/out.${jar.file}"/>
7494
<keepclasseswithmembers access="public" type="class">
7595
<method access="public" type="void" name="main"
7696
parameters="java.lang.String[]"/>
7797
</keepclasseswithmembers>
7898
</proguard>
79-
<delete file="${jar.file}"/>
80-
<move file="out.${jar.file}" tofile="${jar.file}"/>
99+
<delete file="${dist.dir}/${jar.file}"/>
100+
<move file="${dist.dir}/out.${jar.file}" tofile="${dist.dir}/${jar.file}"/>
81101
</target>
82102

83103
<!-- JUnit -->

lib/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.jar

0 commit comments

Comments
 (0)