怎样使用Eclipse创建Maven的Java WEB 项目

文章目录

这里是基于jdk1.8,maven3.6.3,eclipse(2017版、氧气版;也就是 eclipse-jee-oxygen-2-win32-x86_64 )的操作来示例。不同的版本可能会有一些差别,但整体上是不会有较大的变化。

1、第一种方式(选择 archetype 方式)

通过选择 archetype 来创建javaWeb项目

1.1、第一步:创建项目

1.2、第二步:配置jre

(可以忽略这一步的,为了防止其他乱七八糟的情况弄一下也好)。在这个eclipse版本下操作了这一步会自动的创建出 Maven 相关的源文件夹,所以操作一下这一步也没什么坏处。

1.3、第三步:配置tomcat

创建 javaWeb 项目在开发和调试的时候大多数是用 tomcat 来进行,在 Eclipse 中创建 Maven 项目并想使用 tomcat 进行开发调试,本人知道的有两种方式配置 tomcat;一种是外部下载好的tomcat,另外一种是使用Maven的tomcat插件。

这里介绍的是配置外部tomcat。配置外部的tomcat可以使用它内置的一些jar包依赖,比如说 servlet-api、jsp-api 等等其他的一些jar包,有了这些 jar 包依赖就不用在pom.xml文件里面去写依赖内容了,也就是有了这些个依赖不用在pom.xml文件里写相关的依赖内容就可以解决servlet相关的java类缺失而引起的一些编译或者运行的报错了,同时在项目开发完了之后使用maven命令打包项目时也能避免把 servlet-api、jsp-api 等 jar 一起打包了,这样就能避免打包后的项目和服务器上的 tomcat 有相同的 jar 包所引起的一些冲突问题。

1.4、第四步:设置为WEB3.1

  1. 把servlet修改成3.1。打开web.xml -----> 用下面的内容把项目中的web.xml给替换掉。

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
    
      <!-- 这个节点要与不要都行,或者修改一下标签里面的文本内容 -->
      <display-name>Archetype Created Web Application</display-name>
    </web-app>
  2. 修改.settings文件夹下的 org.eclipse.wst.common.project.facet.core.xml 文件

1.5、第五步:配置Maven的编译级别

Maven编译级别指的是Maven项目构建(build)过程中,用于指定Java源代码编译版本的设置。在这里所使用的 Maven 版本是maven3.6.3,它默认的编译级别是1.5,需要将这个默认的级别更改为自己当前安装使用的 JDK 版本一样的级别。Maven 插件的版本可能会随着时间而更新,使用的时候应该确保自己安装和使用的 JDK 版本与 Maven 配置的编译级别相匹配。下面介绍几种配置Maven的编译级别的方法。

1.5.1、第一种方法:使用 Maven 插件单独为某个项目配置编译级别

在pom.xml文件的<build>节点里面的<plugins>...<plugins>子节点来配置一个叫maven-compiler-plugin的插件;这个插件就是Maven用于编译项目的源代码用的。

复制代码
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	
	<modelVersion>4.0.0</modelVersion>
	
	<groupId>com.xxx.demo</groupId>
	<artifactId>maven_javaweb</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	
    <packaging>war</packaging>
    
	<name>xxx</name>
    <url>http://maven.apache.org</url>
	<description>xxx</description>

	<dependencies>
		...
        <!-- 这里的内容是项目所需要的依赖,根据项目所需要的来编写 -->
	</dependencies>

	<build>
		<plugins>
            <plugin>
                <!--  Maven 中用于编译 Java 源代码的插件 -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version><!-- 这个节点也可以不写 -->
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding><!-- 这个节点也可以不写 -->
                </configuration>
            </plugin>
        </plugins>
	</build> 
    
    
</project>
1.5.2、第二种方法:使用<properties>节点单独为某个项目配置编译级别

在pom.xml文件的<properties>节点里面添加配置

复制代码
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	
	<modelVersion>4.0.0</modelVersion>
	
	<groupId>com.xxx</groupId>
	<artifactId>artifact_xxx</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	
    <packaging>war</packaging>
    
	<name>xxx</name>
	<url>http://maven.apache.org</url>
	<description>xxx</description>
	
	<properties>
       <!-- 写上下面所示的这3个子节点,就能设置当前项目编译级别 -->
	   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
       <maven.compiler.source>1.8</maven.compiler.source>
       <maven.compiler.target>1.8</maven.compiler.target>
	</properties>

	<dependencies>
		...
        <!-- 这里的内容是项目所需要的依赖,根据项目所需要的来编写 -->
	</dependencies>

	<build>
		...
        <!-- 没有内容这个节点可以不用写 -->
	</build> 
</project>
1.5.3、在settings.xml文件中全局设置

在Maven的settings.xml文件中添加上一段代码,如下所示

复制代码
<!-- 首先我们要在settings.xml文件中找到<profiles>标签,然后在此标签内部粘贴如下配置:-->

<profile>
  <id>jdk-1.8</id>
  <activation>
    <jdk>1.8</jdk>
  </activation>
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
  </properties>
</profile>

对Maven的编译级别设置好了以后,设置一下eclipse对这个项目的编译级别。

1.6、第六步:修复Eclipse提示的错误

1.7、第七步:设置Maven的源文件夹

这样创建的maven项目,目录可能是不全的。需要设置一下。

2、第二种方式(跳过archetype方式)

2.1、第一步:创建项目

2.2、第二步:创建web.xml

接下来创建需要创建web.xml文件。

复制代码
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

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

2.3、第三步:配置Maven的编译级别

接下来配置Maven的编译级别。

关于配置Maven的编译级别更详细的内容在1.5章节有介绍。点击查看

2.4、第四步:配置tomcat

要想将项目运行跑起来的话,需要用到tomcat,这个tomcat可以是自己下载好的也可以是Maven的tomcat插件

如果是自己下载好的需要配置一下Library,如果是用Maven的tomcat插件需要添加一下servlet的依赖,不然在代码里用Servlet相关的java类将会找不到,就会报错。

2.4.1、使用Maven的tomcat插件方式

在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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>
  
  <groupId>com.xxx.demo</groupId>
  <artifactId>maven_javaweb</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <packaging>war</packaging>
    
  <name>xxx</name>
  <url>http://maven.apache.org</url>
  <description>xxx</description>
  
  <!-- 这一段是配置Maven编译级别用的 -->
  <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  
  <dependencies>
      <!-- 这里的内容是项目所需要的依赖,根据项目所需要的来编写 -->
      
      <dependency>
          <!-- 
              这里创建的javaweb项目是以一个简单的servlet作为示例。

              由于是采用 Maven 的 tomcat 插件的方式,在编写代码的时候是缺失必要的javax.servlet.http.HttpServlet相关的类的,
              所以需要在Maven的pom.xml的文件中添加上servlet的相关依赖。
           -->
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
          <version>2.5</version>
          <!-- 
              如果不设置 <scope>provided</scope> 或者设置为 compile,在打包的时候会将 serlvet-api.jar 一起打包,
              然后将打包好的 war 包部署到服务器(另外一个电脑)中的 tomcat 里面,
              这样会跟服务器中(另外一个电脑)的 tomcat 内部存在的 servlet-api.jar 包冲突。会导致运行出问题。
          
              这个涉及到的是Maven的依赖作用范围的知识,这里就不过多的介绍,有兴趣自行去查找Maven的依赖作用范围相关资料去学习。
          -->
          <scope>provided</scope>
      </dependency>
      
      <!-- 
          如果还用到JSP的话,还要加上JSP相关依赖,记得还是要加上 <scope>provided</scope> 
          总的来说,如果使用到tomcat自带jar包,将项目中依赖作用范围设置为:provided 其他依赖可以默认
       -->
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>jsp-api</artifactId><!-- 用不到这个依赖就把这个依赖给删掉。 -->
          <version>2.0</version>
          <scope>provided</scope>
      </dependency>
      
  </dependencies>
    
  <build>
      <plugins>
          <!-- 这个是tomcat插件 -->
  	      <plugin>
  	          <groupId>org.apache.tomcat.maven</groupId>
		      <artifactId>tomcat7-maven-plugin</artifactId>
		      <version>2.2</version>
  	          <configuration>
                  <!-- 配置Tomcat端口号,默认为8080;虽然默认是8080,但还是显式地写出来,也可以自定义端口号 -->
  	              <port>8081</port> 
                  <!-- 配置应用的访问路径,默认为 ROOT 即 "/";虽然默认是"/",但还是显式地写出来,也可以自定义访问路径 -->
  	              <path>/</path> 
                  <!-- URL按UTF-8进行编码,这样就解决了中文参数乱码。 -->
  	              <uriEncoding>UTF-8</uriEncoding>
  	          </configuration>
  	      </plugin>
          <!-- <plugin>
              <groupId>org.apache.maven.plugins</groupId>
		      <artifactId>maven-war-plugin</artifactId>
		      <version>2.1-alpha-2</version>
              <configuration></configuration>
          </plugin> -->
      </plugins>
  </build>
  
</project>

注意:

  1. 由于是采用 Maven 的 tomcat 插件作为开发调试使用的服务器,在编写代码的时候是缺失 servlet 相关类库的(也就是缺失 servlet 相关依赖),所以需要在Maven的pom.xml的文件中添加上servlet的相关依赖。在添加 servlet 相关依赖的时候要注意将依赖作用范围设为provided。如下图所示:

  2. tomcat 的插件可以在 tomcat 的官网上找到;http://tomcat.apache.org/maven-plugin.html,它里面现在有两个版本,分别是tomcat6、tomcat7。这些版本都比较老旧,可能在项目开发中并不适用,所以推荐在eclipse、IDEA等开发工具中配置使用外部下载好的tomcat。![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a124c9ff6933404e8a8629f18d743559.png)

  3. 在eclipse中将tomcat插件运行起来

2.4.2、配置外部下载好的tomcat

推荐使用配置外部下载好的tomcat,因为外部下载好的 tomcat 可以自由的选择版本;使用插件的方式,那些tomcat的版本版本都太低了,可能会出现各种问题,并不一定适合项目所需要。前面1.3章节有介绍怎样配置外部下载好的tomcat。点击查看

3、介绍一下命令的方式创建Maven项目。

3.1、创建普通的 java 项目

使用 maven-archetype-quickstart 可以快速创建一个简单的 Maven 项目(就是一个普通的 java 项目,一般可以用在简单的 demo 或者用于测试一下代码运行情况。其他用途也行,只要合适就好。)。只需要用户提供项目最基本的信息,就能生成项目的基本结构及 POM 文件。

mvn archetype:generate -DgroupId=net.biancheng.www -DartifactId=helloMaven -Dversion=0.0.1-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

参数说明:

  • -DgroupId: 项目组 ID,通常为组织名或公司网址的反写。
  • -DartifactId: 项目名。
  • -Dversion: 版本
  • -DarchetypeArtifactId: 指定 ArchetypeId,maven-archetype-quickstart 用于快速创建一个简单的 Maven 项目。
  • -DinteractiveMode: 是否使用交互模式。

3.2、创建一个简单的 Web 应用

上面介绍的 Maven 项目是普通的 java 项目打包类型是 JAR ,但在现今的互联网时代,我们创建的大部分应用程序都是 Web 应用,在 Java 中 Web 应用的打包方式是 WAR。使用 Maven 的 maven-archetype-webapp 模板可以创建一个简单的 Web 应用。

mvn archetype:generate -DgroupId=net.biancheng.www -DartifactId=mavenWeb -Dversion=0.0.1-SNAPSHOT -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

  • -DgroupId: 项目组 ID,通常为组织名或公司网址的反写。
  • -DartifactId: 项目名。
  • -Dversion: 版本
  • -DarchetypeArtifactId: 指定 ArchetypeId,maven-archetype-webapp 模板可以创建一个简单的 Web 应用。
  • -DinteractiveMode: 是否使用交互模式。

创建完成后里面的一些目录是不全的,根据需要自行加上。

相关推荐
寻星探路1 天前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
崔庆才丨静觅1 天前
hCaptcha 验证码图像识别 API 对接教程
前端
曹牧1 天前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
passerby60611 天前
完成前端时间处理的另一块版图
前端·github·web components
掘了1 天前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅1 天前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅1 天前
5分钟快速搭建 AI 平台并用它赚钱!
前端
爬山算法1 天前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty7251 天前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎1 天前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven