Wiki source code of Quick Start
Last modified by Paul Hoadley on 2025/01/30 02:09
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | (% class="auto-cursor-target" %) | ||
2 | You should be able to get a "Hello, World!" Wonder application running using [[Maven>>https://maven.apache.org]] in about 10 minutes. | ||
3 | |||
4 | (% id="HAssumptions" class="auto-cursor-target" %) | ||
5 | = Assumptions = | ||
6 | |||
7 | We're going to make a few assumptions to keep this page brief: | ||
8 | |||
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. 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. | ||
12 | |||
13 | (% id="HSetup" class="auto-cursor-target" %) | ||
14 | = Setup = | ||
15 | |||
16 | (% class="auto-cursor-target" %) | ||
17 | You need to install Maven: | ||
18 | |||
19 | (% class="auto-cursor-target" %) | ||
20 | {{{$ cd ~/Applications | ||
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 | ||
24 | }}} | ||
25 | |||
26 | Add ##bin## to your path in your shell's startup file, say ##~~/.zshrc##: | ||
27 | |||
28 | {{{PATH=$PATH:/Users/paulh/Applications/apache-maven-3.9.9/bin | ||
29 | }}} | ||
30 | |||
31 | (% class="auto-cursor-target" %) | ||
32 | Confirm you have it installed: | ||
33 | |||
34 | (% class="auto-cursor-target" %) | ||
35 | {{{$ mvn --version | ||
36 | Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae) | ||
37 | }}} | ||
38 | |||
39 | (% class="auto-cursor-target" %) | ||
40 | Finally, add ##~~/.m2/settings.xml##: | ||
41 | |||
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 | }}} | ||
81 | |||
82 | (% id="HCreateanewapplicationproject" class="auto-cursor-target" %) | ||
83 | = Create a new application project = | ||
84 | |||
85 | (% class="auto-cursor-target" %) | ||
86 | Make a new directory somewhere, and run: | ||
87 | |||
88 | {{{$ mvn archetype:generate -DarchetypeArtifactId=erxapplication-archetype \ | ||
89 | -DarchetypeGroupId=org.wocommunity \ | ||
90 | -DarchetypeVersion=3.0 -DaskForDefaultPropertyValues=true}}} | ||
91 | |||
92 | (% class="auto-cursor-target" %) | ||
93 | After some downloading, Maven will prompt you: | ||
94 | |||
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}}} | ||
102 | |||
103 | |||
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 | |||
113 | (% id="HBuildandlaunchtheapplication" class="auto-cursor-target" %) | ||
114 | = Build and launch the application = | ||
115 | |||
116 | (% class="auto-cursor-target" %) | ||
117 | From the same directory, run: | ||
118 | |||
119 | (% class="auto-cursor-target" %) | ||
120 | {{{$ cd Foo | ||
121 | $ mvn package}}} | ||
122 | |||
123 | (% class="auto-cursor-target" %) | ||
124 | Once Maven has finished building, you can launch: | ||
125 | |||
126 | (% class="auto-cursor-target" %) | ||
127 | {{{$ ./target/Foo.woa/Foo}}} | ||
128 | |||
129 | (% class="auto-cursor-target" %) | ||
130 | A browser should open and show: | ||
131 | |||
132 | >Hello WOnder world! | ||
133 | |||
134 | (% id="HImportyourprojectintoEclipse" class="auto-cursor-target" %) | ||
135 | = Import your project into Eclipse = | ||
136 | |||
137 | (% class="auto-cursor-target" %) | ||
138 | A final, optional step is to bring the project into Eclipse. | ||
139 | |||
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. | ||
143 | |||
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 | |||
153 | (% class="auto-cursor-target" %) | ||
154 | You're done. |