在本教程中,我们使用Maven Archetype插件创建了一个简单的web应用程序。我们将在名为jetty或tomcat的Servlet容器中运行此web应用程序。
请注意,我们正在使用Maven从命令行创建Maven web应用程序。
-确保已安装Java 8+。
-确保已安装Maven并配置了环境路径
要创建web应用程序,请使用以下maven命令(我们的项目名称:simple-webapp)
:
mvn archetype:generate -DgroupId=com.companyname.simpleweb -DartifactId=simple-webapp -Dpackage=com.companyname.projectname -Dversion=1.0-SNAPSHOT
注意,整个命令应该是一行。构建成功后,我们将在命令行控制台中看到以下输出。
[INFO] Parameter: package, Value: com.javadevelopersguide
[INFO] Parameter: groupId, Value: com.javadevelopersguide
[INFO] Parameter: artifactId, Value: maven-webapp
[INFO] Parameter: packageName, Value: com.javadevelopersguide
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: C:\Ramesh_Study\maven\guides\maven-webapp
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 25.499 s
[INFO] Finished at: 2018-06-20T12:35:13+05:30
[INFO] ------------------------------------------------------------------------
继续并打开pom.xml
文件。maven-webapp
项目的初始POM:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.javadevelopersguide</groupId>
<artifactId>maven-webapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>maven-webapp Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>maven-webapp</finalName>
</build>
</project>
现在,让我们将maven项目配置为使用maven-compiler-plugin
来使用Java8编译源代码。
打开pom.xml
文件并添加以下maven-compiler-plugin:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
以下是完整的pom.xml
文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.javadevelopersguide</groupId>
<artifactId>maven-webapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>maven-webapp Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>maven-webapp</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
注意,packaging元素包含值war
。这种打包类型将Maven配置为在WAR
文件中生成web应用程序存档。
它是一个web应用程序,应该创建web。xml(部署描述符)
因此,打开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>
型
将其导入Eclipse IDE:
文件->导入…->Maven->现有Maven项目到工作区。
要编写servlet,我们需要将ServletAPI作为依赖项添加到项目的POM中。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
还值得指出的是,我们使用了提供的scope
作为此依赖项。这告诉Maven JAR是由容器“提供”的,因此不应包含在WAR中
如果您有兴趣为这个简单的web应用程序编写自定义JSP标记,则需要添加对JSP2.0API的依赖关系。使用此示例中显示的配置:
<!-- https://mvnrepository.com/artifact/javax.servlet/jsp-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
让我们向这个应用程序添加一个简单的servlet,并对pom.xml
和web.xml
进行一些更改以支持此更改
让我们创建一个名为“com.javadevelopersguide.mavenwebapp.web
”的包,在此包下创建SimpleServlet
类。
package com.javadevelopersguide.mavenwebapp.web;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SimpleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println(" SimpleServlet Executed");
out.flush();
out.close();
}
}
我们的SimpleServlet
类就是这样的:一个servlet,它将简单的消息打印到响应的Writer
打开src/main/webapp/WEB-INF/web.xml
文件并添加以下代码以Mapservlet:
<!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>
<servlet>
<servlet-name>simple</servlet-name>
<servlet-class>
com.javadevelopersguide.mavenwebapp.web.SimpleServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>simple</servlet-name>
<url-pattern>/simple</url-pattern>
</servlet-mapping>
</web-app>
就是这样。现在,您可以从eclipse或外部tomcat或嵌入式服务器(如jetty)运行web应用程序。
1.如果您已经将maven-webapp
应用程序导入到eclipse中,那么只需在tomcat服务器中作为服务器运行即可。
1.您还可以配置Jetty插件。在这个例子中,让我们配置Jetty插件并运行web应用程序。
配置Jetty插件
<build>
<finalName>maven-webapp</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
</build>
转到项目目录并运行以下命令以在Jetty服务器中运行此Maven项目:
mvn jetty:run
[INFO] Logging to org.slf4j.impl.SimpleLogger(org.mortbay.log) via org.mortbay.log.Slf4jLog
[INFO] Context path = /maven-webapp
[INFO] Tmp directory = determined at runtime
[INFO] Web defaults = org/mortbay/jetty/webapp/webdefault.xml
[INFO] Web overrides = none
[INFO] web.xml file = C:\Ramesh_Study\maven\guides\maven-webapp\src\main\webapp\WEB-INF\web.xml
[INFO] Webapp directory = C:\Ramesh_Study\maven\guides\maven-webapp\src\main\webapp
[INFO] Starting jetty 6.1.26 ...
[INFO] jetty-6.1.26
[INFO] No Transaction manager found - if your webapp requires one, please configure one.
[INFO] Started SelectChannelConnector@0.0.0.0:8080
[INFO] Started Jetty Server
一旦Jetty服务器启动,只需在浏览器中点击以下URL:
http://localhost:8080/maven-webapp/simple
在本教程中,我们学习了如何创建一个简单的基于maven的web应用程序,并在名为jetty的Servlet容器中运行了该web应用程序。
这个简单的maven web项目的源代码可以在Github上找到。
Github存储库:Simple Maven Web Application
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.javaguides.net/2018/06/Guide-to-Create-a-Simple-Maven-Web-Application.html
内容来源于网络,如有侵权,请联系作者删除!