Showing posts with label IntelliJ Idea. Show all posts
Showing posts with label IntelliJ Idea. Show all posts

Sunday, October 17, 2010

Maven: Make project IntelliJ Idea/Eclipse ready

With Maven it is pretty simple to make a project importable into IntelliJ Idea/Eclipse/Netbeans IDE. In this post I will cover IntelliJ Idea and Eclipse only.

For IntelliJ Idea: The easiest way is to choose: New Module -> Import Module from External Model and give it the project's root directory. But I believe this functionality has been recently added to IntelliJ Idea, which means it *might* not be available with pre Idea-X EAP. (I could be wrong here.)

UPDATE: As Hohonuuli pointed out in the comments, you can also do File -> Open Project, and select the pom.xml file in your project in Intellij (9 and 10).

For whom IntelliJ Idea does not provide this functionality based on the Idea version they are on, they can run a maven command to generate IntelliJ related files:

rhasija@rhasija-desktop $ mvn idea:idea

rhasija@rhasija-desktop $ ls -lart
total 72
drwxr-xr-x 3 rhasija rhasija  4096 2010-10-05 22:40 src
-rw-r--r-- 1 rhasija rhasija   791 2010-10-05 22:40 pom.xml
drwxr-xr-x 8 rhasija rhasija  4096 2010-10-05 22:49 ..
drwxr-xr-x 3 rhasija rhasija  4096 2010-10-05 22:50 target
-rw-r--r-- 1 rhasija rhasija 20933 2010-10-05 22:58 MavenSpringHibernateMockitoDemo.iws
-rw-r--r-- 1 rhasija rhasija  4535 2010-10-05 22:58 MavenSpringHibernateMockitoDemo.ipr
-rw-r--r-- 1 rhasija rhasija  3855 2010-10-05 22:58 MavenSpringHibernateMockitoDemo.iml
-rw-r--r-- 1 rhasija rhasija    47 2010-10-05 22:59 .gitignore
drwxr-xr-x 5 rhasija rhasija  4096 2010-10-05 22:59 .
drwxr-xr-x 8 rhasija rhasija  4096 2010-10-05 23:00 .git


Notice the MavenSpringHibernateMockitoDemo.iws, MavenSpringHibernateMockitoDemo.ipr, and MavenSpringHibernateMockitoDemo.iml files.

This will add Idea related files project.ipr, project.iws, and project.iml.

To make project Eclipse ready run the following maven command:

rhasija@rhasija-desktop $ mvn eclipse:eclipse

rhasija@rhasija-desktop $ ls -lart
total 32
drwxr-xr-x 3 rhasija rhasija 4096 2010-10-05 22:40 src
-rw-r--r-- 1 rhasija rhasija  791 2010-10-05 22:40 pom.xml
drwxr-xr-x 8 rhasija rhasija 4096 2010-10-05 22:49 ..
drwxr-xr-x 8 rhasija rhasija 4096 2010-10-05 22:50 .git
drwxr-xr-x 3 rhasija rhasija 4096 2010-10-05 22:50 target
-rw-r--r-- 1 rhasija rhasija  428 2010-10-05 22:50 .project
-rw-r--r-- 1 rhasija rhasija  317 2010-10-05 22:50 .classpath
drwxr-xr-x 5 rhasija rhasija 4096 2010-10-05 22:50 .


Notice the .project and .classpath files in the directory

Maven, Spring MVC, Hibernate and Mockito

In this 8 part series, I will cover how to create a simple Maven Web project, and then add Hibernate, Spring MVC and Mockito dependencies. I am assuming you have Maven installed. If not you can learn how to install Maven here.

First we will start with a brand new Maven project:

Step #1: Generate a Maven Webapp project:

mvn archetype:generate

The command above provides us a lot of archetype options. For this demo, we are going to choose #83 that is: maven-archetype-webapp (An archetype which contains a sample Maven Webapp project.).

Below (in bold) were the options I chose:

Choose a number: 80: 83
Choose version:
1: 1.0
2: 1.0-alpha-1
3: 1.0-alpha-2
4: 1.0-alpha-3
5: 1.0-alpha-4
Choose a number: : 5
Define value for property 'groupId': : com.mayabansi.webappdemo
Define value for property 'artifactId': : MavenSpringHibernateMockitoDemo
Define value for property 'version': 1.0-SNAPSHOT:
Define value for property 'package': com.mayabansi.webappdemo:

(NOTE: I have left out the rest of standard maven output for brevity)

Above command created the project structure below:

rhasija@rhasija-desktop ~/workspace/blog_projects/MavenSpringHibernateMockitoDemo $ find . 
.
./src
./src/main
./src/main/webapp
./src/main/webapp/index.jsp
./src/main/webapp/WEB-INF
./src/main/webapp/WEB-INF/web.xml
./src/main/resources
./pom.xml

rhasija@rhasija-desktop ~/workspace/blog_projects/MavenSpringHibernateMockitoDemo $ 

Step #2: Add basic project to source code control.

Step #3: Make project ready for IntelliJ Idea/Eclipse.

Step #4: Add JBoss Remote Repository as alternate remote repository for Hibernate artifacts.

Step #5: Add Hibernate related dependencies.

Step #6: Add Enterprise Bundle repository to settings.xml

Step #7: Add Spring MVC related dependencies.

Step #8: Add Mockito dependency.

NOTE: The example is complete. I will keep adding to it as I learn new things so as to make the example project richer.

The entire project can be downloaded from GitHub or you can use Git to checkout the project:

git clone git@github.com:RaviH/MavenSpringHibernateMockito.git