Wiki source code of Quick Start

Version 78.1 by Paul Hoadley on 2023/12/25 10:19

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.
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.
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
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 }}}
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 77.1 28 {{{PATH=$PATH:/Users/paulh/Applications/apache-maven-3.9.6/bin
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
Paul Hoadley 77.1 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.
Lachlan Deck 67.1 105
Paul Hoadley 77.2 106 (% id="HBuildandlaunchtheapplication" class="auto-cursor-target" %)
Paul Hoadley 77.1 107 = Build and launch the application =
Lachlan Deck 67.1 108
Paul Hoadley 77.1 109 (% class="auto-cursor-target" %)
110 From the same directory, run:
Lachlan Deck 60.1 111
Paul Hoadley 77.1 112 (% class="auto-cursor-target" %)
113 {{{$ cd Foo
114 $ mvn package}}}
Lachlan Deck 19.1 115
Paul Hoadley 77.1 116 (% class="auto-cursor-target" %)
117 Once Maven has finished building, you can launch:
Lachlan Deck 19.1 118
Paul Hoadley 77.1 119 (% class="auto-cursor-target" %)
120 {{{$ ./target/Foo.woa/Foo}}}
Lachlan Deck 19.1 121
Paul Hoadley 77.1 122 (% class="auto-cursor-target" %)
123 A browser should open and show:
Lachlan Deck 67.1 124
Paul Hoadley 77.1 125 >Hello WOnder world!
Lachlan Deck 67.1 126
Paul Hoadley 77.2 127 (% id="HImportyourprojectintoEclipse" class="auto-cursor-target" %)
Paul Hoadley 77.1 128 = Import your project into Eclipse =
Lachlan Deck 67.1 129
Paul Hoadley 77.1 130 (% class="auto-cursor-target" %)
131 A final, optional step is to bring the project into Eclipse.
Lachlan Deck 25.1 132
Paul Hoadley 77.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.
Lachlan Deck 25.1 136
Paul Hoadley 77.1 137 (% class="auto-cursor-target" %)
138 You're done.