Changes for page Packaging WO Applications as true WAR with Maven
Last modified by Ulrich Köster on 2009/08/02 20:26
From version 16.1
edited by Andrew Lindesay
on 2009/07/23 05:24
on 2009/07/23 05:24
Change comment:
There is no comment for this version
To version 24.1
edited by Henrique Prange
on 2009/08/02 20:26
on 2009/08/02 20:26
Change comment:
Migrated to Confluence 4.0
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. apl1 +XWiki.hprange - Content
-
... ... @@ -1,10 +1,10 @@ 1 -If you have used the [[woapplication-archetype]] to create your project, jump to the step 3. 1 +If you have used the [[doc:woapplication-archetype]] to create your project, jump to the step 3. 2 2 3 3 You have to follow some instructions to build a true WAR package: 4 4 5 5 == Step 1: Create a web.xml file == 6 6 7 -You need to create a web.xml file. You can download a simple web.xml file [[here>> ^web.xml]]. Don't forget to change the displayName and the WOMainBundle properties:7 +You need to create a web.xml file. You can download a simple web.xml file [[here>>attach:web.xml]]. Don't forget to change the displayName and the WOMainBundle properties: 8 8 9 9 {{noformat}} 10 10 ... ... @@ -23,7 +23,7 @@ 23 23 24 24 == Step 2: Create/generate an Info.plist file == 25 25 26 -You also need to create or generate a valid Info.plist file into your resources folder. [[Here>> ^Info.plist]] is a sample Info.plist. You have to change the $your-app-name and $package occurrences with the respective application name and Application class package.26 +You also need to create or generate a valid Info.plist file into your resources folder. [[Here>>attach:Info.plist]] is a sample Info.plist. You have to change the ${your-app-name} and ${package} occurrences with the respective application name and Application class package. 27 27 28 28 == Step 3: Package your classes, resources and webserver resources == 29 29 ... ... @@ -32,7 +32,24 @@ 32 32 {{noformat}} 33 33 34 34 <build> 35 + ... 36 + <resources> 35 35 ... 38 + <resource> 39 + <targetPath>Resources</targetPath> 40 + <directory>${basedir}/src/main/resources</directory> 41 + </resource> 42 + <resource> 43 + <targetPath>Resources</targetPath> 44 + <directory>${basedir}/src/main/components</directory> 45 + </resource 46 + <resource> 47 + <targetPath>WebServerResources</targetPath> 48 + <directory>${basedir}/src/main/webserver-resources</directory> 49 + </resource> 50 + ... 51 + </resources> 52 + ... 36 36 <plugins> 37 37 ... 38 38 <plugin> ... ... @@ -74,11 +74,23 @@ 74 74 75 75 {{/noformat}} 76 76 77 -**NOTE**: if your application uses Wonder,pleaseread[[thistutorial>>http://wiki.objectstyle.org/confluence/display/WONDER/Creating+a+wonder+app+to+deploy+as+a+servlet]].94 +**NOTE**: If your application uses Wonder you must add the ERXServlet dependency: 78 78 96 +{{noformat}} 97 + 98 +<dependency> 99 + <groupId>wonder.core</groupId> 100 + <artifactId>ERServlet</artifactId> 101 + <version>1.0</version> 102 +</dependency> 103 + 104 +{{/noformat}} 105 + 106 +Read this [[tutorial>>url:http://wiki.objectstyle.org/confluence/display/WONDER/Creating+a+wonder+app+to+deploy+as+a+servlet||shape="rect"]] to find how to configure the ERXServletAdaptor in your application. 107 + 79 79 == Step 5: Change the packaging type == 80 80 81 -The default [[maven-war-plugin>>http://maven.apache.org/plugins/maven-war-plugin/]] can handle the war packaging correctly. You have to change the packaging of your POM to 'war' in order to use this plug-in: 110 +The default [[maven-war-plugin>>url:http://maven.apache.org/plugins/maven-war-plugin/||shape="rect"]] can handle the war packaging correctly. You have to change the packaging of your POM to 'war' in order to use this plug-in: 82 82 83 83 {{noformat}} 84 84 ... ... @@ -88,9 +88,55 @@ 88 88 89 89 It's done. 90 90 120 +== Step 6: Filtering variables with Maven (OPTIONAL) == 121 + 122 +Maven supports variable substitution during build time. It is called resource filtering. You can find more information about resource filtering [[here>>url:http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html||shape="rect"]] and [[here>>url:http://www.sonatype.com/books/maven-book/reference/resource-filtering-sect-description.html||shape="rect"]]. 123 + 124 +If you are using variables in your resource files (i.e. the Info.plist), you have to configure Maven to filter the Resources folder like this: 125 + 126 +{{noformat}} 127 + 128 +<build> 129 + ... 130 + <resources> 131 + ... 132 + <resource> 133 + <targetPath>Resources</targetPath> 134 + <directory>${basedir}/src/main/resources</directory> 135 + <filtering>true</filtering> 136 + </resource> 137 + ... 138 + </resources> 139 + ... 140 +</build> 141 + 142 +{{/noformat}} 143 + 144 +If you are using variables in the web.xml file, you have to configure Maven to filter deployment descriptors like this: 145 + 146 +{{noformat}} 147 + 148 +<build> 149 + ... 150 + <plugins> 151 + ... 152 + <plugin> 153 + <artifactId>maven-war-plugin</artifactId> 154 + <configuration> 155 + ... 156 + <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors> 157 + </configuration> 158 + </plugin> 159 + ... 160 + </plugins> 161 + ... 162 +</build> 163 + 164 +{{/noformat}} 165 + 91 91 = Running your application as true WAR = 92 92 93 -You can use the [[maven-jetty-plugin>>http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin]] to run and test your application. 168 +You can use the [[maven-jetty-plugin>>url:http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin||shape="rect"]] to run and test your application. 94 94 95 95 == Step 1: Configure the maven-jetty-plugin == 96 96 ... ... @@ -121,4 +121,4 @@ 121 121 122 122 == Step 3: See the result == 123 123 124 -Open a browser and type the URL for your application like this: [[http://locahost:8080/your-app-name/WebObjects/]] 199 +Open a browser and type the URL for your application like this: [[http:~~/~~/locahost:8080/your-app-name/WebObjects/>>url:http://locahost:8080/your-app-name/WebObjects/||shape="rect"]]