deamon
deamon

Reputation: 92387

Maven archetype for simple Servlet application

Is there a Maven 2 archetype for a simple Servlet (2.5) web application?

Upvotes: 49

Views: 47294

Answers (6)

Maciej Walkowiak
Maciej Walkowiak

Reputation: 12932

Archetype for Servlet 3

I have created simple archetype for creating Servlet 3 based webapps: https://github.com/maciejwalkowiak/servlet3-maven-archetype

Just clone it, install and generate project that uses Servlet 3, no XML, Tomcat7 ready (plugin included)

Upvotes: 15

cmb28
cmb28

Reputation: 421

I let the IDE (mine is Intellij IDEA) create the basic webapp structure for me.

Go to:

File → New Project → create from archetype → ...archetype-webapp

This will give the basic webapp structure.

Upvotes: 0

Bimales Mandal
Bimales Mandal

Reputation: 331

  • Create maven project using maven-archetype-webapp archetype

command: mvn archetype:create -DgroupId=com.lei.webapp.quickstart -DartifactId=webapp-quick-start -DarchetypeArtifactId=maven-archetype-webapp

  • Add following dependency in pom.xml :

    javax.servlet servlet-api 2.5

Upvotes: 1

jeevatkm
jeevatkm

Reputation: 4781

Updated archetype number.

Note: By default archetype 'maven-archetype-webapp' generates Servlet 2.3 application. For upgrading to Servlet 2.5 kindly follow post #1343356 from Pascal Thivent


Refer this link Exclusive Maven Archetype List and follow this link for How to use that archetype.

Frequently used archetype numbers are:

  • 610 -> org.apache.maven.archetypes:maven-archetype-webapp (An archetype which contains a sample Maven Webapp project)
  • 600 -> org.apache.maven.archetypes:maven-archetype-j2ee-simple (An archetype which contains a simplifed sample J2EE application.)

OR just use below handy maven command-

$ mvn archetype:generate -DgroupId=com.sample -DartifactId=servlet-app -Dversion=0.1-SNAPSHOT -DarchetypeArtifactId=maven-archetype-webapp

Upvotes: 1

Pascal Thivent
Pascal Thivent

Reputation: 570315

There is an archetype for webapp:

mvn archetype:generate -DgroupId=com.acme \
                       -DartifactId=my-webapp \
                       -Dversion=1.0-SNAPSHOT \
                       -DarchetypeArtifactId=maven-archetype-webapp \
                       -DinteractiveMode=false

This will generate the following structure:

$ tree my-webapp/
my-webapp/
├── pom.xml
└── src
    └── main
        ├── resources
        └── webapp
            ├── index.jsp
            └── WEB-INF
                └── web.xml

Where the web.xml is a Servlet 2.3 web.xml:

$ cat my-webapp/src/main/webapp/WEB-INF/web.xml 
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>

For a Servlet 2.5 web application, replace it with something like this:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  version="2.5">
  <display-name>Archetype Created Web Application</display-name>
</web-app>

I don't know for NetBeans but Eclipse (more precisely M2Eclipse) relies on the web.xml to set the project facets (so you need to change the web.xml before the import, Eclipse won't update the web facet if you change the web.xml after the facts).

Upvotes: 70

diy
diy

Reputation: 3610

you can start with

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp

For a list of other archetypes,please refere to archetypes list

Upvotes: 2

Related Questions