Wiki source code of WOProject-Ant

Last modified by Andrew Lindesay on 2014/02/25 00:42

Hide last authors
Marc Guenther 96.1 1 WOProject Ant Tasks is a suite of extensions for ant to build WOApplications, WOFrameworks and native launchers for the standalone Java application.
Ulrich Köster 76.1 2
Marc Guenther 96.1 3 == Introduction ==
Ulrich Köster 76.1 4
Larry Mills-Gahl 100.1 5 Ant build files are broken into what are called '[[targets>>url:http://ant.apache.org/manual/using.html#targets||shape="rect"]]', similar to a [[Makefile>>url:http://en.wikipedia.org/wiki/Makefile||shape="rect"]]. These targets are a group of, what are called, '[[tasks>>url:http://ant.apache.org/manual/tasksoverview.html||shape="rect"]]'. Tasks are used for getting work done; they make something happend directly, e.g. [[move files>>url:http://ant.apache.org/manual/CoreTasks/move.html||shape="rect"]] on the filesystem, [[compile java>>url:http://ant.apache.org/manual/CoreTasks/javac.html||shape="rect"]] source files into classes, [[transfer files>>url:http://ant.apache.org/manual/OptionalTasks/scp.html||shape="rect"]] from one server to another over ssh, etc.
Andrus Adamchik 78.1 6
7 While Ant is distributed with around fifty built-in tasks, any number of customized tasks can easily be added by developers outside of the core Ant team.
8
Ulrich Köster 107.1 9 WOProject is such a project. WOProject adds a half dozen tasks to Ant. These tasks allow WebObject developers the freedom to use Ant in their build process, instead of the using Apple's XCode suite. A few of these tasks are: [[doc:WOL.Home.WOProject-Ant.WOCompile.WebHome]], [[doc:WOL.Home.WOProject-Ant.WOApplication.WebHome]], [[doc:WOL.Home.WOProject-Ant.WOFramework.WebHome]]. By using the -lib command line option to refer to woproject.jar, these tasks can be used directly in the typical Ant {{code language="none"}}build.xml{{/code}} file in building your WebObjects projects outside of the Eclipse/WOLips environment. It is not recommended to drop woproject.jar into your ant lib directory since woproject is under continuous development and different versions can trigger problems such as errors when build WOnder from source.
Andrus Adamchik 78.1 10
Marc Guenther 96.1 11 See the link above to the old site for in-depth documentation on each of these new tasks.
Andrus Adamchik 78.1 12
13 Reasons for using Ant to build WebObjects frameworks and applications:
14
15 * Ant is highly configurable and flexible, with constant additions from the open source community, and is considered a defacto standard by the Java community
16
17 * Builds of projects with a very large number of files without dependency failures
18
19 * Allows easy automation of daily builds for teams of developers, i.e. nightly builds for smoke testing, etc.
Marc Guenther 96.1 20
21 == Download and Install ==
22
Larry Mills-Gahl 100.1 23 You can download the ant tasks --from the [[sourceforge>>url:http://sourceforge.net/projects/woproject/||shape="rect"]] page-- from the automated [[Hudson build>>url:http://webobjects.mdimension.com/hudson/job/WOLipsStable/lastSuccessfulBuild/artifact/||shape="rect"]] page for WOProject. If you have installed the wolips material for using WebObjects with Eclipse then you can also find the ant tasks there. The path for this will look something like {{code language="none"}}.../eclipse/plugins/org.objectstyle.wolips.woproject.ant_2.0.0.3458/lib/woproject.jar{{/code}}. To use the ant plugins outside of Eclipse, either by extracting the jar file from the Eclipse distribution or by downloading it separately, you will need to install them into your computers' ant lib directory. On MacOS-X this would be{{code language="none"}} /Developer/Java/Ant/lib/woproject.jar{{/code}} (on Leopard w/ XCode 3.0, this would be {{code language="none"}}/usr/share/ant/lib/woproject.jar{{/code}}. You can also put this jar in {{code language="none"}}USER_HOME/.ant/lib/woproject.jar{{/code}}. A quick way to see where all of these lib directories are and what is loaded is to type '{{code language="none"}}ant -diagnostics{{/code}}').
Marc Guenther 96.1 24
25 == Ant Tasks ==
26
Larry Mills-Gahl 100.1 27 //(for tasks not documented here see// //[[//the old site//>>url:http://objectstyle.org/woproject-old/ant/||shape="rect"]]).//
Marc Guenther 96.1 28
29 * Java Launchers
Andrus Adamchik 103.1 30 ** [[doc:WOL.Home.WOProject-Ant.JApplication.WebHome]]: A task for assembling native launchers for any Java applications for a number of OS platforms.
Marc Guenther 96.1 31
32 * Core WebObjects Tasks
Johann Werner 106.1 33 ** [[doc:WOL.Home.WOProject-Ant.WOCompile.WebHome]]: A Javac task extension that allows including WOFrameworks in CLASSPATH.
Paul Hoadley 105.1 34 ** [[doc:WOL.Home.WOProject-Ant.WOApplication.WebHome]]: A task for assembling WebObjects applications.
Ulrich Köster 107.1 35 ** [[doc:WOL.Home.WOProject-Ant.WOFramework.WebHome]]: A task for assembling WebObjects frameworks.
Andrew Lindesay 108.1 36 ** [[doc:WOL.Home.WOProject-Ant.WOGen.WebHome]]: A task for generating custom Java EO classes from EOModel.
Andrew Lindesay 101.1 37 ** [[doc:WOL.Home.WOProject-Ant.EOModel.WebHome]]: A task for configuring custom connection dictionary for EOModels.
Marc Guenther 96.1 38
39 * WebObjects Tools Integration Tasks:
Larry Mills-Gahl 100.2 40 ** [[PBIndex>>doc:WOL.PBIndex]]: Maintains PB.project file for integration with WOBuilder on Windows.
41 ** [[PBXIndex>>doc:WOL.PBXIndex]]: Maintains PBX.pbproj file for integration with WOBuilder and EOModeler on older Mac OS X.
42 ** [[XcodeIndex>>doc:WOL.XcodeIndex]]: Maintains XCode project files for integration with WOBuilder on the latest Mac OS X.
Marc Guenther 96.1 43
Pascal Robert 102.1 44 * [[doc:WOL.Home.WOProject-Ant.Embedding WOFrameworks.WebHome]]
Andrew Lindesay 104.1 45 * [[doc:WOL.Home.WOProject-Ant.Servlet Builds.WebHome]]
Marc Guenther 96.1 46
47 == FAQ ==
48
Larry Mills-Gahl 100.1 49 === I am making an EO adaptor framework and so need to manipulate the {{code language="none"}}Info.plist{{/code}} ===
Marc Guenther 96.1 50
Larry Mills-Gahl 100.1 51 Edit the {{code language="none"}}build.properties{{/code}} file and modify the {{code language="none"}}customInfoPListContent{{/code}} which will be appended near the end of the {{code language="none"}}Info.plist{{/code}} file that is constructed when the framework is build.