Introduction

The wobootstrap plug-in is used to import the WebObjects libraries to the Maven's local repository or a remote repository for sharing with other developers and projects (for WebObjects version 5.3 and later, the license is now included as part of the Xcode software license. Please review the license in the Xcode installer to verify if you are not breaking the current terms).

This plug-in searches for the WebObjects jars and generates all the required information (groupId, artifactId and version) to import the libraries to the particular repository.

The wobootstrap goals usually need to be executed once per WebObjects version.

WebObjects 5.2 or later must be installed in order to use the wobootstrap plug-in. The supported platforms include MacOS X, Windows and Linux.

Goals Overview

The wobootstrap plug-in has 2 goals:

Usage

The wobootstrap:install Mojo

In most cases, wobootstrap:install doesn't need any configuration. It also doesn't need a Maven project to run.

mvn wobootstrap:install

The wobootstrap:deploy Mojo

The wobootstrap:deploy Mojo is used to install the WebObjects libraries to a remote repository (i.e. managed by an Enterprise Repository Manager). The full usage statement of the wobootstrap:deploy mojo can be described as:

mvn wobootstrap:deploy -Durl=file://C:\m2-repo \
                       -DrepositoryId=some.id

If the url to deploy is not specified, the goal will fail. The repositoryId points to a server section in the settings.xml file. If you don't specify a repositoryId, Maven will try to extract authentication information using the default id 'remote-repository'.



There are two reasons for needing to specify the complete identifier of the wobootstrap plugin:

  • You want to use a specific version
  • You have an environment out of your control and you cannot adjust the pluginGroups in the settings.xml file.
##
## Usage: <groupId>:<artifactId>[:<version>]:<goal>
## where goal is either install or deploy, for example.
##
mvn org.objectstyle.woproject.maven2:maven-wobootstrap-plugin[:<version>]:<goal>

Custom WebObjects Location

You can set 2 parameters to customize the mechanism used by this plug-in to locate WebObjects libraries:

These configurations are optional, but you have to provide both if you want to customize the search for WebObjects libraries.

mvn wobootstrap:install -DwebObjectsLibFolder=/a_path_to_webobjects/lib \
                        -DwebObjectsVersion=5.3.3

You can use these parameters with both goals: install and deploy.

Do not link to or install the WebObjects jars located inside /System/Library/Frameworks or /Library/Frameworks. If you're installing an older version of WebObjects you must obtain the jars that the WebObjects installer had previously installed into /Library/WebObjects/lib. For example, the jar /Library/WebObjects/lib/JavaWebObjects.jar has the complete set of resources and files included for the dependency JavaWebObjects whereas /System/Library/Frameworks/JavaWebObjects.framework/Resources/Java/javawebobjects.jar does not.

Tips

If the following error happens while using the wobootstrap:deploy goal: "Error deploying artifact: Unsupported Protocol: 'ftp': Cannot find wagon which supports the requested protocol: ftp"

See the solution here.