If you
want to extend or modify the standard build process, Workshop for WebLogic will export
an Ant script that duplicates the standard application build. You can then modify the Ant script as needed and do command line builds. Modifying the generated Ant script does not alter the build process within Workshop for WebLogic.
Ant Build Script Functionality
Workshop for WebLogic generates the following types of Ant build scripts:
- Web Project (generated for Dynamic Web Projects)
- EAR Project (generated for Enterprise Application Projects)
- Utility Project (generated for Utility Projects)
- EJB Project (generated for WebLogic EJB projects)
The exported Ant script contains a set of standard targets for building, assembling, staging and generating module archives.
You can view the targets supported for a specific script with the command
ant -projecthelp. The functionality of these targets is detailed in the following table.
Supported Ant Targets
 |
 |
 |
 |
Target | Dependencies | Details |
build |
|
Compiles the source files; does not package the results. The target in an EAR project's Ant script builds all child module projects in dependency order. |
assemble |
build(a formal dependency does not exist on "build" but that target must be called prior to asssemble) |
Assembles the project for iterative dev deployment; requires that the "ear.root" property is specified. The target in an EAR project's Ant script assembles all child module projects.
|
stage |
build(a formal dependency does not exist on "build" but that target must be called prior to stage) |
Copies all of project's resources and build artifacts into a form that's ready for archive creation; staging directory can be overridden via
the "staging.dir" property. The target in an EAR project's Ant script stages all child module projects.
|
archive |
stage |
Creates an archive containing all projects's resources and build artifacts; archive name and location can be overridden
via the "archive.path" property.
Note that the archive target builds an EAR file if run from an EAR script; if run from an Ant script generated from a web project,
it generates a WAR file.
|
clean |
|
Removes the files and directories generated by the build target |
|
 |
 |
 |
 |
Generating Ant Build Scripts
To Export an Ant Build Script for a Project:
- Right click on the project name in the Package Explorer view and choose Export
to display the Select dialog.
- Choose Workshop Ant Script. Click Next.
- In the Ant Script Generators: pane, click on the type of Ant script to generate:
- For web projects, choose Web Project Build Script (WebLogic Server)
- For EAR projects, choose Ear Project Build Script (WebLogic Server)
- For utility projects, choose Utility Project Build Script (WebLogic Server)
- For WebLogic EJB projects, choose EJB Project Build Script (WebLogic Server)
- For all other project types (i.e. WTP EJB, Connector, Application Client, Java), only the Java Project Build Script is available. This build script provides minimal functionality (just basic build and clean targets) and cannot be used directly within the context of a full EAR build. For these projects, you may find it useful to instead customize the build script created for a utility project.
- In the File Name box, choose the path and file name for the generated Ant script. Click Finish.
To Export an Ant Build Script for an Application:
To generate Ant scripts for an entire application, right click on each project name and generate the Ant script for each member project (web, utility, and EJB projects) individually. Then right click on the EAR project and generate the Ant script.
To Generate the Workspace Metadata File:
If you want to run your Ant scripts on a remote machine that does not have access to the workspace, you must first generate a workspace metadata file:
- Choose File > Export to display the Select dialog.
- Choose Workspace Metadata for Workshop Ant Script . Click Next.
- From the Select Projects dialog:
- On the Projects pane, choose the projects to use when creating the workspace metadata file.
- In the Export Destination box specify the location and name for the workspace metadata file.
Click Next to continue.
- On the final screen, The wl.home and workspace.dir will be automatically populated. The purpose of that screen is to define variables to relativize absolute paths that would be written into the metadata file. The user can see the remaining absolute paths in the lower box. When a new variable is defined that covers a portion of one of the absolute paths, those absolute paths will be removed from that box. Every variable that’s defined at this point will need to be passed to the ant script at runtime using the -D syntax. Click Finish.
Caveats and Implementation Notes:
- Eclipse working sets are not supported.
- Projects must be open (Project > Open Project) before exporting an Ant script. You cannot export an Ant script for a closed project.
- The Ant script for a project should be regenerated if any changes are made to the project's enabled facets.
- The workspace metadata file must be regenerated if changes are made to project metadata (e.g. Java build path) or workspace structure (e.g. new/removed projects, changes in inter-project dependencies).
Executing Ant Build Scripts
To Build a Project by Running the Ant Script:
- Generate the Ant script for the project.
- Configure the execution environment of your shell by executing wl.home/common/bin/commEnv.cmd (or wl.home/common/bin/commEnv.sh for Linux).
Use of the Ant scripts without prior execution of commEnv.cmd (commEnv.sh for Linux) is not currently supported.
- Change to the Eclipse project directory.
- Execute the desired Ant targets as follows (example illustrates the creation of the project archive):
ant build archive -Dworkspace=workspacepath
where the parameters are:
workspacepath is the full path for the workspace folder (e.g., on Windows you might specify the path as C:/MyWork/Workspaces/MyApp) OR the full path and file name of the workspace metadata file.
If your path names have embedded spaces, you must use quote marks to delimit the path name, e.g.,
ant build -Dworkspace="C:\Documents and Settings\MyWorkspace"
To Build an EAR File Using the Ant Script:
- Generate the Ant script for each project in the EAR.
- Generate the Ant script for the EAR project.
- Configure the execution environment of your shell by executing wl.home/common/bin/commEnv.*
- Change to the Eclipse directory for the EAR project.
- Execute the desired target in the EAR project's Ant script as follows:
ant build archive -Dworkspace=workspacepath
To Execute Ant Scripts on a Remote Machine:
- Generate the workspace metadata file as discussed above.
- Generate the necessary project Ant build scripts.
- Copy the following files to the remote machine:
- the Ant script(s)
- the workspace metatdata file
- everything else in the project and/or ear file, minus the contents of the build directories
- Following the project or EAR build instructions above but specify the location of the workspace metadata file as the
value of -Dworkspace= argument instead of the workspace directory location.
Caveats and Implementation Notes:
- Workspace metadata is imported by the Workshop Ant scripts during every execution. Unless an exported workspace metadata file is being used, this ehavior ensures that changes to the workspace metadata (e.g. modifications to a project's classpath) will be reflected without necessitating a regeneration of the script. The state of the imported workspace metadata can be viewed by specifying -Decho.metadata=true on the commandline when executing Ant.
- Generated Ant scripts are for use in command line builds, not to run within Workshop for WebLogic. Concurrent use of Workshop for WebLogic and the Ant scripts is not supported and can lead to build errors. The output from the Ant script build should be cleaned prior to launching Workshop for WebLogic to ensure there are no conflicts.