Changes for page Quick Start
Last modified by Paul Hoadley on 2025/01/30 02:09
From version 77.2
edited by Paul Hoadley
on 2023/12/25 09:22
on 2023/12/25 09:22
Change comment:
There is no comment for this version
To version 61.1
edited by Ramsey Gurley
on 2015/04/30 21:05
on 2015/04/30 21:05
Change comment:
There is no comment for this version
Summary
-
Page properties (3 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 1 removed)
Details
- Page properties
-
- Parent
-
... ... @@ -1,1 +1,0 @@ 1 -WOL.Home.WOProject-Maven.WebHome - Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. paulh1 +XWiki.ramsey - Content
-
... ... @@ -1,138 +1,114 @@ 1 -(% class="auto-cursor-target" %) 2 -You should be able to get a "Hello, World!" Wonder application running using Maven in about 10 minutes. 1 +== Outline == 3 3 4 -(% id="HAssumptions" class="auto-cursor-target" %) 5 -= Assumptions = 3 +== Step 1: Installing Maven == 6 6 7 - We're goingto makeafewassumptionstokeep this pagebrief: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. 8 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. //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. 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: 12 12 13 - (% id="HSetup" class="auto-cursor-target" %)14 - = Setup=10 +{{noformat}} 11 +sudo port install maven3 15 15 16 -(% class="auto-cursor-target" %) 17 -You need to install Maven. 13 +{{/noformat}} 18 18 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 -}}} 15 +In future, to keep this up to date: 25 25 26 -Add ##bin## to your path in your shell's startup file, say ##~~/.zshrc##. 17 +{{noformat}} 18 +sudo port upgrade maven3 27 27 28 -{{{PATH=$PATH:/Users/paulh/Applications/apache-maven-3.9.6/bin 29 -}}} 20 +{{/noformat}} 30 30 31 -(% class="auto-cursor-target" %) 32 -Confirm you have it installed: 22 +Don't forget to install maven_select: 33 33 34 -(% class="auto-cursor-target" %) 35 -{{{$ mvn --version 36 -Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae) 37 -}}} 24 +{{noformat}} 25 +sudo port install maven_select 38 38 39 - (% class="auto-cursor-target" %)40 - Finally, add ~~/.m2/settings.xml:27 +{{/noformat}} 28 +{{/tip}} 41 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 -}}} 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. 81 81 82 -(% id="HCreateanewapplicationproject" class="auto-cursor-target" %) 83 -= Create a new application project = 32 +== Step 2: Configuring your Maven Settings == 84 84 85 -(% class="auto-cursor-target" %) 86 -Make a new directory somewhere, and run: 34 +Advanced users can skip this step, but it's highly recommended. 87 87 88 -{{{$ mvn archetype:generate -DarchetypeArtifactId=erxapplication-archetype \ 89 - -DarchetypeGroupId=org.wocommunity \ 90 - -DarchetypeVersion=3.0 -DaskForDefaultPropertyValues=true}}} 36 +[[doc:Quick Start Maven Settings Configuration Guide]] 91 91 92 -(% class="auto-cursor-target" %) 93 -After some downloading, Maven will prompt you: 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. 94 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}}} 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. 102 102 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. 42 +== Step 3: Installing WebObjects Libraries == 105 105 106 -(% id="HBuildandlaunchtheapplication" class="auto-cursor-target" %) 107 -= Build and launch the application = 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: 108 108 109 - (% class="auto-cursor-target" %)110 - From thesame directory, run:46 +{{noformat}} 47 +mvn wobootstrap:install 111 111 112 -(% class="auto-cursor-target" %) 113 -{{{$ cd Foo 114 -$ mvn package}}} 49 +{{/noformat}} 115 115 116 -(% class="auto-cursor-target" %) 117 -Once Maven has finished building, you can launch: 51 +**NOTE**: WebObjects must be installed. 118 118 119 -(% class="auto-cursor-target" %) 120 -{{{$ ./target/Foo.woa/Foo}}} 53 +**See** the [[doc:maven-wobootstrap-plugin]] documentation for more information and options for specifying a specific version. 121 121 122 -(% class="auto-cursor-target" %) 123 -A browser should open and show: 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. 124 124 125 ->Hello WOnder world! 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}} 126 126 127 -(% id="HImportyourprojectintoEclipse" class="auto-cursor-target" %) 128 -= Import your project into Eclipse = 61 +== Step 4: Creating a WebObjects or Wonder Project == 129 129 130 -(% class="auto-cursor-target" %) 131 -A final, optional step is to bring the project into Eclipse. 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: 132 132 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. 65 +{{noformat}} 66 +mvn archetype:generate -DarchetypeArtifactId=erxapplication-archetype \ 67 + -DarchetypeGroupId=org.objectstyle.woproject.maven2 \ 68 + -DarchetypeVersion=2.1 136 136 137 -(% class="auto-cursor-target" %) 138 -You're done. 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}}
- settings.xml
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.XWikiGuest - Size
-
... ... @@ -1,1 +1,0 @@ 1 -1.9 KB - Content
-
... ... @@ -1,73 +1,0 @@ 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>