Changes for page Quick Start

Last modified by Paul Hoadley on 2025/01/30 02:09

From version 61.1
edited by Ramsey Gurley
on 2015/04/30 21:05
Change comment: There is no comment for this version
To version 77.1
edited by Paul Hoadley
on 2023/12/25 09:20
Change comment: Updates and simplifies these instructions.

Summary

Details

Page properties
Parent
... ... @@ -1,0 +1,1 @@
1 +WOL.Home.WOProject-Maven.WebHome
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.ramsey
1 +XWiki.paulh
Content
... ... @@ -1,114 +1,138 @@
1 -== Outline ==
1 +(% class="auto-cursor-target" %)
2 +You should be able to get a "Hello, World!" Wonder application running using Maven in about 10 minutes.
2 2  
3 -== Step 1: Installing Maven ==
4 +(% class="auto-cursor-target" %)
5 += Assumptions =
4 4  
5 -Downloading and installing the latest version of [[Maven>>url:http://maven.apache.org/download||shape="rect"]] is the first step to start using this tool.
7 +We're going to make a few assumptions to keep this page brief:
6 6  
7 -{{tip title="Mac Tip"}}
8 -install macports [[http:~~/~~/www.macports.org/install.php>>url:http://www.macports.org/install.php||shape="rect"]], then on the terminal:
9 +1. You are running macOS X. You can probably get a WebObjects development environment up on a different OS, but we won't cover that here.
10 +1. You have Java installed. //We are actually going to assume you're using Java 8//, but only because it's just marginally easier to launch the application under Java 8. People are running WebObjects on Java 21 in production.
11 +1. You have Eclipse and WOLips installed. Eclipse versions as recent as 2023-09 have been shown to be just fine, albeit with a slightly modified WOLips. Again we won't cover any of that here.
9 9  
10 -{{noformat}}
11 -sudo port install maven3
13 +(% class="auto-cursor-target" %)
14 += Setup =
12 12  
13 -{{/noformat}}
16 +(% class="auto-cursor-target" %)
17 +You need to install Maven. [[Download the latest version of Maven>>https://maven.apache.org/download.cgi]] from Apache.
14 14  
15 -In future, to keep this up to date:
19 +(% class="auto-cursor-target" %)
20 +{{{$ cd ~/Applications
21 +$ curl -O https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.zip
22 +$ unzip apache-maven-3.9.6-bin.zip
23 +$ ln -s apache-maven-3.9.6 apache-maven
24 +}}}
16 16  
17 -{{noformat}}
18 -sudo port upgrade maven3
26 +Add ##bin## to your path in your shell's startup file, say ##~~/.zshrc##.
19 19  
20 -{{/noformat}}
28 +{{{PATH=$PATH:/Users/paulh/Applications/apache-maven-3.9.6/bin
29 +}}}
21 21  
22 -Don't forget to install maven_select:
31 +(% class="auto-cursor-target" %)
32 +Confirm you have it installed:
23 23  
24 -{{noformat}}
25 -sudo port install maven_select
34 +(% class="auto-cursor-target" %)
35 +{{{$ mvn --version
36 +Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
37 +}}}
26 26  
27 -{{/noformat}}
28 -{{/tip}}
39 +(% class="auto-cursor-target" %)
40 +Finally, add ~~/.m2/settings.xml:
29 29  
30 -**NOTE**: It is very helpful if you understand some Maven concepts before continuing with this tutorial. See [[doc:General Maven Documentation]] for more information.
42 +(% class="auto-cursor-target" %)
43 +{{{<settings xmlns="http://maven.apache.org/POM/4.0.0"
44 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
45 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
46 + http://maven.apache.org/xsd/settings-1.0.0.xsd">
47 + <profiles>
48 + <profile>
49 + <id>wocommunity</id>
50 + <activation>
51 + <activeByDefault>true</activeByDefault>
52 + </activation>
53 + <repositories>
54 + <repository>
55 + <id>wocommunity</id>
56 + <url>https://maven.wocommunity.org/content/groups/public/</url>
57 + <releases>
58 + <enabled>true</enabled>
59 + </releases>
60 + <snapshots>
61 + <enabled>true</enabled>
62 + </snapshots>
63 + </repository>
64 + </repositories>
65 + <pluginRepositories>
66 + <pluginRepository>
67 + <id>wocommunity</id>
68 + <url>https://maven.wocommunity.org/content/groups/public/</url>
69 + <releases>
70 + <enabled>true</enabled>
71 + </releases>
72 + <snapshots>
73 + <enabled>false</enabled>
74 + </snapshots>
75 + </pluginRepository>
76 + </pluginRepositories>
77 + </profile>
78 + </profiles>
79 +</settings>
80 +}}}
31 31  
32 -== Step 2: Configuring your Maven Settings ==
82 +(% class="auto-cursor-target" %)
83 += Create a new application project =
33 33  
34 -Advanced users can skip this step, but it's highly recommended.
85 +(% class="auto-cursor-target" %)
86 +Make a new directory somewhere, and run:
35 35  
36 -[[doc:Quick Start Maven Settings Configuration Guide]]
88 +{{{$ mvn archetype:generate -DarchetypeArtifactId=erxapplication-archetype \
89 + -DarchetypeGroupId=org.wocommunity \
90 + -DarchetypeVersion=3.0 -DaskForDefaultPropertyValues=true}}}
37 37  
38 -**NOTE for those who know what to do**: You can download the complete and most recent settings.xml [[here>>attach:settings.xml]] and install it to ~~/.m2/settings.xml.
92 +(% class="auto-cursor-target" %)
93 +After some downloading, Maven will prompt you:
39 39  
40 -See [[Maven Settings Reference>>url:http://maven.apache.org/settings.html||shape="rect"]] if you want more information about additional options for the settings.xml file.
95 +(% class="auto-cursor-target" %)
96 +{{{Define value for property 'JavaVersion' 1.8: : 1.8
97 +Define value for property 'WonderVersion' 7.2: : 7.4
98 +Define value for property 'groupId': example.app
99 +Define value for property 'artifactId': Foo
100 +Define value for property 'version' 1.0-SNAPSHOT: : 0.1-SNAPSHOT
101 +Define value for property 'package' example.app: : example.app.foo}}}
41 41  
42 -== Step 3: Installing WebObjects Libraries ==
103 +(% class="auto-cursor-target" %)
104 +You can enter your own values if you like, but remember to stick with Java 1.8 for the moment. Hit 'Y' to confirm when requested.
43 43  
44 -Maven takes control of all your project's dependencies. To develop WebObjects applications, Maven has to reference the WebObjects jars. You have to [[install the WebObjects libraries into your local repository>>url:http://wocreator.sourceforge.net/repository-howto.html||shape="rect"]] to accomplish this:
106 +(% class="auto-cursor-target" %)
107 += Build and launch the application =
45 45  
46 -{{noformat}}
47 -mvn wobootstrap:install
109 +(% class="auto-cursor-target" %)
110 +From the same directory, run:
48 48  
49 -{{/noformat}}
112 +(% class="auto-cursor-target" %)
113 +{{{$ cd Foo
114 +$ mvn package}}}
50 50  
51 -**NOTE**: WebObjects must be installed.
116 +(% class="auto-cursor-target" %)
117 +Once Maven has finished building, you can launch:
52 52  
53 -**See** the [[doc:maven-wobootstrap-plugin]] documentation for more information and options for specifying a specific version.
119 +(% class="auto-cursor-target" %)
120 +{{{$ ./target/Foo.woa/Foo}}}
54 54  
55 -**See** [[Maven Introduction to Repositories>>url:http://maven.apache.org/guides/introduction/introduction-to-repositories.html||shape="rect"]] if you want more information about Maven repositories.
122 +(% class="auto-cursor-target" %)
123 +A browser should open and show:
56 56  
57 -{{warning title="Installing the right jars!"}}
58 -Do **not** link to or install the WebObjects jars located inside {{code language="none"}}/System/Library/Frameworks{{/code}} or {{code language="none"}}/Library/Frameworks{{/code}}. If you're installing an older version of WebObjects you must obtain the jars that the WebObjects installer had previously installed into {{code language="none"}}/Library/WebObjects/lib{{/code}}. For example, the jar {{code language="none"}}/Library/WebObjects/lib/JavaWebObjects.jar{{/code}} has the complete set of resources and files included for the dependency JavaWebObjects whereas {{code language="none"}}/System/Library/Frameworks/JavaWebObjects.framework/Resources/Java/javawebobjects.jar{{/code}} does not.
59 -{{/warning}}
125 +>Hello WOnder world!
60 60  
61 -== Step 4: Creating a WebObjects or Wonder Project ==
127 +(% class="auto-cursor-target" %)
128 += Import your project into Eclipse =
62 62  
63 -Archetypes are the fast way to create a new project using Maven and WOProject provides various archetypes of its own to get you started with WebObjects, or better, Wonder-based applications. Execute the following command to generate a basic Wonder application project:
130 +(% class="auto-cursor-target" %)
131 +A final, optional step is to bring the project into Eclipse.
64 64  
65 -{{noformat}}
66 -mvn archetype:generate -DarchetypeArtifactId=erxapplication-archetype \
67 - -DarchetypeGroupId=org.objectstyle.woproject.maven2 \
68 - -DarchetypeVersion=2.1
133 +1. File > Import... > Maven > Existing Maven Projects
134 +1. Using the file browser, find the top-level "Foo" folder containing the project you created above, click Open.
135 +1. Ensure ##pom.xml## is checked and click Finish.
69 69  
70 -{{/noformat}}
71 -
72 -The maven-archetype-plugin will ask the required information to create the new project.
73 -
74 -**NOTE**: You can use archetype catalogs to reduce the number of properties to set while creating a project. See the documentation of [[doc:woapplication-archetype]].
75 -
76 -**NOTE**: You can use archetypes within Eclipse as described [[here>>doc:documentation.Maven Create WO Application Project||anchor="m2eclipse"]].
77 -
78 -**NOTE:** You can see the list of available archetypes in the following location: [[http:~~/~~/wo-repository.moleque.com.br/nexus/content/groups/public/org/objectstyle/woproject/maven2/>>url:http://wo-repository.moleque.com.br/nexus/content/groups/public/org/objectstyle/woproject/maven2/||shape="rect"]].
79 -
80 -== Step 5: Importing the Project into Eclipse ==
81 -
82 -The new project is ready to be imported into Eclipse workspace. Use the Eclipse's import wizard (File > Import...) and choose the option "Existing Projects into Workspace". Select the root directory of your new project and finish the import wizard.
83 -
84 -{{note title="Warning"}}
85 -As Maven takes care of the dependency management, you must use a mechanism to add the jars to your Eclipse build path. There are 3 options:
86 -
87 -1. Use the [[mvn eclipse:eclipse>>url:http://maven.apache.org/plugins/maven-eclipse-plugin/||shape="rect"]] goal to update your .classpath file.
88 -1. Use the [[m2eclipse>>url:http://m2eclipse.codehaus.org/||shape="rect"]] plug-in for Eclipse.
89 -1. Use the [[q4e>>url:http://code.google.com/p/q4e/||shape="rect"]] plug-in for Eclipse.
90 -{{/note}}
91 -
92 -After adding the project dependencies to your Eclipse build path, WOLips can build the project and you will be able to start developing and running the application.
93 -
94 -**NOTE**: This tutorial assumes you have chosen the option 2. You can find more information about IDE integration [[here>>doc:General Maven Documentation||anchor="IDE Integration"]].
95 -
96 -== Step 6: Building WebObjects Applications with Maven ==
97 -
98 -Now, building your project with Maven is easy. Go to the project folder on Terminal and execute:
99 -
100 -{{noformat}}
101 -mvn clean package
102 -
103 -{{/noformat}}
104 -
105 -This goal will generate a WOA package inside the target folder of your project. It also generates two compressed packages: one for woapplication and other for the webserver resources.
106 -
107 -To install your project into your local repository:
108 -
109 -{{noformat}}
110 -mvn clean install
111 -
112 -{{/noformat}}
113 -
114 -This will install your project into {{code language="none"}}~/.m2/repository/your/project/groupId/artifactId/version/...{{/code}}
137 +(% class="auto-cursor-target" %)
138 +You're done.
settings.xml
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Size
... ... @@ -1,0 +1,1 @@
1 +1.9 KB
Content
... ... @@ -1,0 +1,73 @@
1 +<settings xmlns="http://maven.apache.org/POM/4.0.0"
2 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
4 + http://maven.apache.org/xsd/settings-1.0.0.xsd">
5 + <pluginGroups>
6 + <pluginGroup>org.objectstyle.woproject.maven2</pluginGroup>
7 + </pluginGroups>
8 +
9 + <profiles>
10 + <profile>
11 + <id>default</id>
12 + <activation>
13 + <activeByDefault>true</activeByDefault>
14 + </activation>
15 + <repositories>
16 + <repository>
17 + <id>wocommunity.releases</id>
18 + <name>WOCommunity Releases Repository</name>
19 + <url>
20 + http://maven.wocommunity.org/content/groups/public
21 + </url>
22 + <releases>
23 + <enabled>true</enabled>
24 + </releases>
25 + <snapshots>
26 + <enabled>false</enabled>
27 + </snapshots>
28 + </repository>
29 + <repository>
30 + <id>wocommunity.snapshots</id>
31 + <name>WOCommunity Snapshots Repository</name>
32 + <url>
33 + http://maven.wocommunity.org/content/groups/public-snapshots
34 + </url>
35 + <releases>
36 + <enabled>false</enabled>
37 + </releases>
38 + <snapshots>
39 + <enabled>true</enabled>
40 + </snapshots>
41 + </repository>
42 + </repositories>
43 + <pluginRepositories>
44 + <pluginRepository>
45 + <id>wocommunity.releases</id>
46 + <name>WOCommunity Releases Repository</name>
47 + <url>
48 + http://maven.wocommunity.org/content/groups/public
49 + </url>
50 + <releases>
51 + <enabled>true</enabled>
52 + </releases>
53 + <snapshots>
54 + <enabled>false</enabled>
55 + </snapshots>
56 + </pluginRepository>
57 + <pluginRepository>
58 + <id>wocommunity.snapshots</id>
59 + <name>WOCommunity Snapshots Repository</name>
60 + <url>
61 + http://maven.wocommunity.org/content/groups/public-snapshots
62 + </url>
63 + <releases>
64 + <enabled>false</enabled>
65 + </releases>
66 + <snapshots>
67 + <enabled>true</enabled>
68 + </snapshots>
69 + </pluginRepository>
70 + </pluginRepositories>
71 + </profile>
72 + </profiles>
73 +</settings>