Wiki source code of Quick Start

Version 61.1 by Ramsey Gurley on 2015/04/30 21:05

Show last authors
1 == Outline ==
2
3 == Step 1: Installing Maven ==
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.
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
10 {{noformat}}
11 sudo port install maven3
12
13 {{/noformat}}
14
15 In future, to keep this up to date:
16
17 {{noformat}}
18 sudo port upgrade maven3
19
20 {{/noformat}}
21
22 Don't forget to install maven_select:
23
24 {{noformat}}
25 sudo port install maven_select
26
27 {{/noformat}}
28 {{/tip}}
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.
31
32 == Step 2: Configuring your Maven Settings ==
33
34 Advanced users can skip this step, but it's highly recommended.
35
36 [[doc:Quick Start Maven Settings Configuration Guide]]
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.
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.
41
42 == Step 3: Installing WebObjects Libraries ==
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:
45
46 {{noformat}}
47 mvn wobootstrap:install
48
49 {{/noformat}}
50
51 **NOTE**: WebObjects must be installed.
52
53 **See** the [[doc:maven-wobootstrap-plugin]] documentation for more information and options for specifying a specific version.
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.
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}}
60
61 == Step 4: Creating a WebObjects or Wonder Project ==
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:
64
65 {{noformat}}
66 mvn archetype:generate -DarchetypeArtifactId=erxapplication-archetype \
67 -DarchetypeGroupId=org.objectstyle.woproject.maven2 \
68 -DarchetypeVersion=2.1
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}}