Here's how you can run maven built web applications
directly from within Intellij IDEA 8. Once you run this way, you completely
eliminate the code, build, deploy, restart cycle just when you want to make a
change... you can even change classes on the fly (hot swapping).
I pretty much only run in debug mode now. Debugging is really nice because
the dependent source files are linked up and downloaded automagically by maven
on the fly and class changes via hot swapping really makes you productive. The
archetype selection in the project creation wizard came with version 8 but the
rest of the guide will work with versions 6 and 7 as well. I used the
appfuse-basic-spring archetype as the web application but any web app built with
maven should work in a pretty similar way.
Create Maven Module
First, we need a project. There's nothing special to note here with the
exception of the name field. The name field cannot contain a
space. If it does, Intellij doesn't start up tomcat properly and you
get this ClassNotFoundException on logging/properties.
Choose Maven Archetype
You can type in what you want to for your particular project here. Then click
Finish.
Build Project with Maven
Next you need to build the project to make the output directories.
Click Edit Configurations
There's a button on the toolbar or you can find it by going to Run -->
Edit Configurations. After you click the plus sign and pick local tomcat server
you'll see this
Pick Application Server
If you've already configured an application server for Intellij, you can just
choose it in the dropdown menu. Otherwise you'll need to configure one. After
you click Configure... you'll see this screen:
If you haven't installed Tomcat locally you'll of course need to do that.
Then click the plus sign and pick the tomcat home and Intellij will figure out
the rest.
After you hit ok, you'll be back to the Run/Debug Configurations menu. Now
you can choose the server from the dropdown and the Startup page:
should be filled in with whatever port your Tomcat server has been configured to
use.
Click on Deployment Tab
This is where you choose the deployment source and application context for
the web facet within the application. First click on the Web Facet: Web
module in the middle pane and check the Deploy Web Facet 'Web'
checkbox.
Click the Configure... button.
Configure the Deployment Source
Uncheck the Create web facet war file and choose Create web
facet exploded directory instead.
Click the ellipses (...) button to choose the exploded directory:
Choose the location under the target folder where maven built the
war. It is going to be named using artifactId-version that you chose when you
created the project in the first place. This information is stored in the
pom.xml file so you can change it whenever you want. If you do change it go back
to the Build Project with Maven step after you have done so.
Click Ok. Then Click Ok to close the Deployment Source window.
Finish Deployment Tab
Now you can select the Deployment Source and set your application
context.
Click Ok.
Run/Debug the Application
You should see the server startup successfully
Login to the Application
Hot Swapping
If you've started up in debug mode (highly recommended), change a class in
the class path and make the project (Apple+F9) or compile the
specific class you've changed (Apple+Shift+F9). You should be presented with
this popup:
Make sure you click No on this dialog box. If you click yes,
hot swapping won't work. I usually check Do not show this dialog in the
future as well.
That's it! Now when you change classes and JSPs you can just compile
and they will be hot swapped with resources on the running server.
posted on 2008-12-10 16:38
忆风 阅读(612)
评论(0) 编辑 收藏 所属分类:
IDE