Wiki source code of Quick Start

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

Hide last authors
Ray Kiddy 69.1 1 (% class="auto-cursor-target" %)
Paul Hoadley 77.4 2 You should be able to get a "Hello, World!" Wonder application running using [[Maven>>https://maven.apache.org]] in about 10 minutes.
Ray Kiddy 69.1 3
Paul Hoadley 77.2 4 (% id="HAssumptions" class="auto-cursor-target" %)
Paul Hoadley 77.1 5 = Assumptions =
Lachlan Deck 59.1 6
Paul Hoadley 77.1 7 We're going to make a few assumptions to keep this page brief:
Lachlan Deck 19.1 8
Paul Hoadley 77.1 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.
Paul Hoadley 79.1 10 1. You have Java installed. Any version will do. People are running WebObjects on Java 21 in production.
11 1. You have Eclipse and WOLips installed. Install the [[latest version of Eclipse>>https://www.eclipse.org/downloads/packages/]], along with the [[latest WOLips>>https://github.com/wocommunity/wolips]] if you haven't already.
Lachlan Deck 19.1 12
Paul Hoadley 77.2 13 (% id="HSetup" class="auto-cursor-target" %)
Paul Hoadley 77.1 14 = Setup =
Lachlan Deck 67.1 15
Paul Hoadley 77.1 16 (% class="auto-cursor-target" %)
Paul Hoadley 77.3 17 You need to install Maven:
Lachlan Deck 67.1 18
Paul Hoadley 77.1 19 (% class="auto-cursor-target" %)
20 {{{$ cd ~/Applications
Paul Hoadley 79.1 21 $ curl -O https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.zip
22 $ unzip apache-maven-3.9.9-bin.zip
23 $ ln -s apache-maven-3.9.9 apache-maven
Paul Hoadley 77.1 24 }}}
Lachlan Deck 67.1 25
Paul Hoadley 77.3 26 Add ##bin## to your path in your shell's startup file, say ##~~/.zshrc##:
Lachlan Deck 67.1 27
Paul Hoadley 79.1 28 {{{PATH=$PATH:/Users/paulh/Applications/apache-maven-3.9.9/bin
Paul Hoadley 77.1 29 }}}
Lachlan Deck 67.1 30
Paul Hoadley 77.1 31 (% class="auto-cursor-target" %)
32 Confirm you have it installed:
Lachlan Deck 67.1 33
Paul Hoadley 77.1 34 (% class="auto-cursor-target" %)
35 {{{$ mvn --version
36 Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
37 }}}
Lachlan Deck 67.1 38
Paul Hoadley 77.1 39 (% class="auto-cursor-target" %)
Paul Hoadley 77.3 40 Finally, add ##~~/.m2/settings.xml##:
Lachlan Deck 19.1 41
Paul Hoadley 77.1 42 (% class="auto-cursor-target" %)
43 {{{<settings xmlns="http://maven.apache.org/POM/4.0.0"
Paul Hoadley 77.4 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">
Paul Hoadley 77.1 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 }}}
Lachlan Deck 19.1 81
Paul Hoadley 77.2 82 (% id="HCreateanewapplicationproject" class="auto-cursor-target" %)
Paul Hoadley 77.1 83 = Create a new application project =
Lachlan Deck 67.1 84
Paul Hoadley 77.1 85 (% class="auto-cursor-target" %)
86 Make a new directory somewhere, and run:
Lachlan Deck 60.1 87
Paul Hoadley 77.1 88 {{{$ mvn archetype:generate -DarchetypeArtifactId=erxapplication-archetype \
89 -DarchetypeGroupId=org.wocommunity \
90 -DarchetypeVersion=3.0 -DaskForDefaultPropertyValues=true}}}
Lachlan Deck 60.1 91
Paul Hoadley 77.1 92 (% class="auto-cursor-target" %)
93 After some downloading, Maven will prompt you:
Lachlan Deck 19.1 94
Paul Hoadley 77.1 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}}}
Lachlan Deck 60.1 102
Lachlan Deck 67.1 103
Paul Hoadley 79.1 104 You can enter any version of Java. You should definitely change ##WonderVersion## from 7.2 → 7.4. Hit 'Y' to confirm when requested.
105
106 (% class="box infomessage" %)
107 (((
108 If you enter a ##JavaVersion## greater than 1.8 (there are people using Java 21 in production, for example: enter ##21##), you need to add the following line to build.properties:
109 \\##jvmOptions=~-~-add-exports java.base/sun.security.action=ALL-UNNAMED ~-~-add-exports java.base/sun.util.calendar=ALL-UNNAMED##
110 )))
111
112
Paul Hoadley 77.2 113 (% id="HBuildandlaunchtheapplication" class="auto-cursor-target" %)
Paul Hoadley 77.1 114 = Build and launch the application =
Lachlan Deck 67.1 115
Paul Hoadley 77.1 116 (% class="auto-cursor-target" %)
117 From the same directory, run:
Lachlan Deck 60.1 118
Paul Hoadley 77.1 119 (% class="auto-cursor-target" %)
120 {{{$ cd Foo
121 $ mvn package}}}
Lachlan Deck 19.1 122
Paul Hoadley 77.1 123 (% class="auto-cursor-target" %)
124 Once Maven has finished building, you can launch:
Lachlan Deck 19.1 125
Paul Hoadley 77.1 126 (% class="auto-cursor-target" %)
127 {{{$ ./target/Foo.woa/Foo}}}
Lachlan Deck 19.1 128
Paul Hoadley 77.1 129 (% class="auto-cursor-target" %)
130 A browser should open and show:
Lachlan Deck 67.1 131
Paul Hoadley 77.1 132 >Hello WOnder world!
Lachlan Deck 67.1 133
Paul Hoadley 77.2 134 (% id="HImportyourprojectintoEclipse" class="auto-cursor-target" %)
Paul Hoadley 77.1 135 = Import your project into Eclipse =
Lachlan Deck 67.1 136
Paul Hoadley 77.1 137 (% class="auto-cursor-target" %)
138 A final, optional step is to bring the project into Eclipse.
Lachlan Deck 25.1 139
Paul Hoadley 77.1 140 1. File > Import... > Maven > Existing Maven Projects
141 1. Using the file browser, find the top-level "Foo" folder containing the project you created above, click Open.
142 1. Ensure ##pom.xml## is checked and click Finish.
Lachlan Deck 25.1 143
Paul Hoadley 79.1 144 (% class="box infomessage" %)
145 (((
146 As above, if you're using Java beyond Java 8, you need to add the following to the launch configuration under Arguments > VM arguments:
147 \\##~-~-add-exports java.base/sun.security.action=ALL-UNNAMED ~-~-add-exports java.base/sun.util.calendar=ALL-UNNAMED##
148 )))
149
150
151
152
Paul Hoadley 77.1 153 (% class="auto-cursor-target" %)
154 You're done.