Wiki source code of Building a WebObjects Project

Last modified by David Avendasora on 2013/09/22 14:30

Hide last authors
David Avendasora 40.1 1 = Overview =
David Avendasora 36.1 2
David Avendasora 40.1 3 There are two different and very distinct kinds of builds used during the development and deployment of a WebObjects project.
David Avendasora 36.1 4
David Avendasora 40.1 5 1. **Incremental Build** - this is what Eclipse does every time you save a file. It's automatic (unless you turn it off) and it is very unlikely you'll ever need to really think about it.
6 1. **Deployment Build** - this is what **you** need to do every time you want to deploy your application. Often times you will customize this process if you are doing things differently than the defaults.
David Avendasora 36.1 7
David Avendasora 40.1 8 Both Incremental and Deployment builds make use of some common files to tell them where to look for resources needed to build an application or framework. They include:
David Avendasora 36.1 9
Pascal Robert 42.1 10 1. **[[woproject.jar>>url:http://webobjects.mdimension.com/hudson/job/WOLips36Stable/lastSuccessfulBuild/artifact/||shape="rect"]]**
11 The {{code language="none"}}woproject.jar{{/code}} library is embedded in WOLips to help Eclipse, Ant (when triggered from within Eclipse) and Maven build a valid WebObjects Application ({{code language="none"}}.woa{{/code}}) or WebObjects Framework ({{code language="none"}}.framework{{/code}}) bundle. If you are going to build your project using Hudson/Jenkins, then it will also need access to this library
David Avendasora 45.1 12 1. **[[doc:documentation.Home.Building a WebObjects Project.The build\.properties File.WebHome]]**
Pascal Robert 42.1 13 This file resides in the root directory your WebObjects project. It may be hidden from your view by Eclipse's ability to filter the displayed files in the //WO Explorer// view, but if you look in the project's directory in the finder/desktop/command line you will see it.
D Tim Cummings 44.1 14 1. **[[doc:WOL.Home.wolips\.properties.WebHome]]**
Pascal Robert 42.1 15 This file can contain and override the same settings as the build.properties file, but it's primary purpose is to define the locations that a build done by Eclipse or Ant will look for compiled framework dependencies in. The default location of this file is:
16 1*. **Mac OS X**: {{code language="none"}}~/Users/yourusername/Library/Application Support/WOLips/wolips.properties{{/code}}
17 1*. **Linux**: {{code language="none"}}/home/<user>/Library/Application Support/WOLips/wolips.properties{{/code}}
18 1*. **Windows**: {{code language="none"}}C:\Documents and Settings\<user>\Library\Application Support\WOLips\wolips.properties{{/code}}
David Avendasora 36.1 19
David Avendasora 40.1 20 = Incremental Building =
David Avendasora 36.1 21
David Avendasora 40.1 22 While you are writing your classes and Components (.html, .wod, etc.) the incremental builder is running in the background continuously compiling and validating your code against your projects other code and dependencies. The only time it isn't running is when you turn off "Build Automatically" in Eclipse under the Project menu.
David Avendasora 36.1 23
Pascal Robert 42.1 24 When you are building automatically, you can launch your application at any time from within WOLips/Eclipse by right-clicking on the project and selecting either **Run As — > WO Application** or **Debug As — > WO Application** with no need to manually compile or install any source code either from your current project, or from any frameworks in the workspace that your project depends upon. WOLips/Eclipse takes care of resolving dependencies for things that are not in the locations they will be in in a deployed {{code language="none"}}.woa{{/code}} or {{code language="none"}}.framework{{/code}} bundle. The Incremental Builder does not use Ant or Maven.
David Avendasora 36.1 25
Pascal Robert 42.1 26 {{info title="Incremental Builds != Ant/Maven Builds"}}
David Avendasora 40.1 27 Just because your project runs fine in Eclipse/WOLips does not necessarily mean it will build when using Ant or Maven. If you haven't made changes to the defaults and are doing a standard deployment then it should just work, but if you've modified install locations or are using source (as opposed to binary) frameworks then you will likely have additional steps that you'll need to do complete prior to being able to use Ant or Maven to build.
28 {{/info}}
David Avendasora 36.1 29
David Avendasora 40.1 30 = Deployment Building =
David Avendasora 36.1 31
David Avendasora 40.1 32 The process of building WebObjects Applications and Frameworks for Deployment is more complicated and requires any depended-upon frameworks to already be compiled and installed in defined (but customizable) locations. Building and Installing of both Frameworks and Applications can be also be done directly in Eclipse, but it can also be done from the Command Line or better yet, using a Continuous Integration Server like Hudson/Jenkins. Use of Hudson/Jenkins to build your Applications is **highly** recommended.
33
34 The process and options vary slightly between Frameworks and Applications, but they share many fundamental concepts.
35
36 * Building WO Frameworks using Ant
37 * Building WO Applications using Ant