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.
The wobootstrap plug-in has 2 goals:
- wobootstrap:install goal is used to import the WebObjects libraries to the local repository. It works in a similar way to the install:install-file goal, but the wobootstrap provides all the required information to install the jars.
- woboostrap:deploy goal is used to import the WebObjects libraries to the specified remote repository. It works in a similar way to the deploy:deploy-file goal.
The wobootstrap:install Mojo
In most cases, wobootstrap:install doesn't need any configuration. It also doesn't need a Maven project to run.
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:
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'.
Using the full identifier
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.
Custom WebObjects Location
You can set 2 parameters to customize the mechanism used by this plug-in to locate WebObjects libraries:
- webObjectsLibFolder (optional): The folder containing the WebObjects jars. If you provide a folder without the correct WebObjects libraries, the goal will succeed, but no libraries will be installed or deployed.
- webObjectsVersion (optional): The version of the WebObjects jars.
These configurations are optional, but you have to provide both if you want to customize the search for WebObjects libraries.
You can use these parameters with both goals: install and deploy.
Installing the right jars!
Do not link to or install the WebObjects jars located inside
/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.
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.