用于简单Servlet应用程序的Maven原型模板

48

是否有一个Maven 2原型可以用于简单的Servlet(2.5)Web应用程序?

6个回答

69

有一个用于Web应用程序的原型:

mvn archetype:generate -DgroupId=com.acme \
                       -DartifactId=my-webapp \
                       -Dversion=1.0-SNAPSHOT \
                       -DarchetypeArtifactId=maven-archetype-webapp \
                       -DinteractiveMode=false
这将生成以下结构:
$ tree my-webapp/
my-webapp/
├── pom.xml
└── src
    └── main
        ├── resources
        └── webapp
            ├── index.jsp
            └── WEB-INF
                └── web.xml
其中web.xml是一个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>

对于一个Servlet 2.5的Web应用程序,将其替换为类似以下内容:

<?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>

我不知道NetBeans如何处理,但是Eclipse(更准确地说是M2Eclipse插件)依赖于 web.xml 来设置项目的特性(所以你需要在导入之前更改 web.xml,如果你在特性之后更改 web.xml,Eclipse不会更新Web特性)。


5
可以考虑增加一个步骤,类似于mkdir -p my-webapp/src/main/java/com/acme/,并在该目录中放置一个样例 Helloworld Servlet。 - Leif Gruenwoldt
最后一行非常正确——Eclipse(更确切地说是M2Eclipse)依赖于web.xml来设置项目的facets(因此您需要在导入之前更改web.xml,如果您在事实之后更改web.xml,则Eclipse不会更新web facet)。 - nanosoft
这已经过时了,是为Servlet 2.3设置的。当前规范是4.0.1,并且即将转移到5。 - Basil Bourque

15

2
链接不再可用。 - Daniel Pop

2

你可以从这里开始

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

如需其他原型列表,请参见原型列表


4
他并没有询问如何创建Web项目,他询问的是如何提升Servlet版本(默认为2.3)。 - Steve11235
1
@Steve11235 你读了问题还是只看了标题!他的回答正确地解决了这个问题。 - Geek

1

更新原型编号。

注意:默认情况下,原型“maven-archetype-webapp”生成Servlet 2.3应用程序。如需升级到Servlet 2.5,请参考Pascal Thivent的帖子#1343356


请参考链接排他性Maven原型列表,并按此链接如何使用该原型进行操作。

常用的原型编号包括:

  • 610 -> org.apache.maven.archetypes:maven-archetype-webapp(一个包含示例Maven Webapp项目的原型)
  • 600 -> org.apache.maven.archetypes:maven-archetype-j2ee-simple(一个包含简化的J2EE应用程序示例的原型。)

或者只需使用下面方便的Maven命令-

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

2
他并没有问如何创建Web项目,而是询问如何升级Servlet版本(默认为2.3)。 - Steve11235
1
这是他的问题:“是否有一个简单Servlet(2.5)Web应用程序的Maven 2原型?” - 在投票之前请仔细阅读。Arch id '200'确实创建了简单(servlet)Web应用程序。 - jeevatkm
@nanosoft - 更新了帖子信息,是否回答了您的问题?请告诉我。 - jeevatkm
@jeevatkm - 你更新了原型编号。在你发布的链接中,610这个编号不存在,另一个编号600似乎属于org.xaloon.archetype:xaloon-archetype-wicket-jpa-spring。但是,链接中最后一行关于正确发布方式的信息(也是你更新的)确实很有用。 - nanosoft
@nansoft - 对不起,我会更新链接内容并修改这篇文章。之后我会告诉你。谢谢。 - jeevatkm

1
  • 使用maven-archetype-webapp原型创建maven项目

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

  • 在pom.xml中添加以下依赖项:

    javax.servlet servlet-api 2.5


0

我让IDE(我的是Intellij IDEA)为我创建基本的Web应用程序结构。

前往:

文件 → 新建项目 → 从原型创建 → ...archetype-webapp

这将提供基本的Web应用程序结构。


这已经过时了,设置为Servlet 2.3。当前规范是4.0.1,并即将转移到5。 - Basil Bourque

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接