Enhance the Build File
Now we have a working buildfile we cocould do some enhancements: runtime time you are referencing the same directories, main-class and jar-name are hard coded, and while invocation you have to remember the right order of Build Steps.
The first and second point wocould be addressedProperties, The third with a special property-an attribute of the <project>-tag and the fourth problem can be solved using dependencies.
<Project name = "helloworld" basedir = ". "default =" Main "> <property name =" src. dir "value =" src "/> <property name =" build. dir "value =" build "/> <property name =" classes. dir "value =" build/classes "/> <property name =" jar. dir "value =" build/jar "/> <property name =" Main-class "value =" oata. helloworld "/> <target name =" clean "> <Delete dir =" build "/> </Target> <target name =" compile "> <mkdir dir =" $ {classes. dir} "/> <javac srcdir =" src "destdir =" $ {classes. dir} "/> </Target> <target name =" jar "depends =" compile "> <mkdir dir =" $ {jar. dir} "/> <jar destfile =" $ {jar. dir}/apache-ant.jar "basedir =" $ {classes. dir} "> <manifest> <attribute name =" Main-class "value =" $ {main-class} "/> </manifest> </jar> </Target> <target name = "run" depends = "jar"> <Java jar = "$ {jar. dir}/apache-ant.jar "fork =" true "/> </Target> <target name =" Clean-build "depends =" clean, jar "/> <target name =" Main "depends =" clean, Run "/> </Project>
Now it's easier, just doAntAnd you will get
Buildfile: build. xmlclean: compile: [mkdir] created dir: C :\... \ build \ Classes [javac] compiling 1 source file to c :\... \ build \ classesjar: [mkdir] created dir: C :\... \ build \ jar [jar] building jar: C :\... \ build \ jar \ helloworld. jarrun: [Java] Hello worldmain: build successful