使用Eclipse创建Maven的Java WEB项目的两种方式

 更新时间:2024年11月12日 09:11:20   作者:破昵称想半天  
本文详细介绍了如何在JDK 1.8、Maven 3.6.3和Eclipse 2017版本下创建Java Web项目,包括选择archetype方式、配置Tomcat、设置为Web3.1、配置Maven编译级别、修复Eclipse提示的错误、设置Maven源文件夹等步骤,需要的朋友可以参考下

前言

这里是基于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

  • 把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>
    
  • 修改.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>

注意:

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

  • tomcat 的插件可以在 tomcat 的官网上找到;http://tomcat.apache.org/maven-plugin.html,它里面现在有两个版本,分别是tomcat6、tomcat7。这些版本都比较老旧,可能在项目开发中并不适用,所以推荐在eclipse、IDEA等开发工具中配置使用外部下载好的tomcat。

  • 在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: 是否使用交互模式。

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

总结

到此这篇关于使用Eclipse创建Maven的Java WEB项目的两种方式的文章就介绍到这了,更多相关Eclipse创建Maven Java WEB项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Boot右键maven build成功但是直接运行main方法出错的解决方案

    Spring Boot右键maven build成功但是直接运行main方法出错的解决方案

    这篇文章主要介绍了Spring Boot-右键maven build成功但是直接运行main方法出错的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Java设计模式之中介者模式的实现方式

    Java设计模式之中介者模式的实现方式

    Java中介者模式是一种行为型设计模式,它通过一个中介者对象来协调多个对象之间的交互,降低对象之间的耦合度,提高系统的可维护性和可扩展性。本文将介绍该设计模式的原理、使用场景和实现方法
    2023-04-04
  • Dubbo负载均衡策略介绍

    Dubbo负载均衡策略介绍

    负载均衡改善了跨多个计算资源(例如计算机,计算机集群,网络链接,中央处理单元或磁盘驱动的的工作负载分布。负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间,并避免任何单个资源的过载
    2022-09-09
  • 教你开发脚手架集成Spring Boot Actuator监控的详细过程

    教你开发脚手架集成Spring Boot Actuator监控的详细过程

    这篇文章主要介绍了开发脚手架集成Spring Boot Actuator监控的详细过程,集成包括引入依赖配置文件及访问验证的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Java Class 加密工具 ClassFinal详解

    Java Class 加密工具 ClassFinal详解

    ClassFinal 是一款 java class 文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework;可避免源码泄漏或字节码被反编译,这篇文章主要介绍了Java Class 加密工具 ClassFinal,需要的朋友可以参考下
    2023-03-03
  • java LRU算法介绍与用法示例

    java LRU算法介绍与用法示例

    这篇文章主要介绍了java LRU算法,简单介绍了LRU算法的概念并结合实例形式分析了LRU算法的具体使用方法,需要的朋友可以参考下
    2017-09-09
  • Mybatis-Plus批量插入用法详解

    Mybatis-Plus批量插入用法详解

    mybatis-plus的IService接口默认提供saveBatch批量插入,也是唯一一个默认批量插入,在数据量不是很大的情况下可以直接使用,但这种是一条一条执行的效率上会有一定的瓶颈,今天我们就来研究研究mybatis-plus中的批量插入
    2023-02-02
  • maven+阿里云创建国内镜像的中央仓库(亲测可用)

    maven+阿里云创建国内镜像的中央仓库(亲测可用)

    本篇文章主要介绍了maven+阿里云创建国内镜像的中央仓库(亲测可用),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • java多线程编程必备volatile与synchronized深入理解

    java多线程编程必备volatile与synchronized深入理解

    这篇文章主要介绍了java多线程编程必备volatile与synchronized的深入理解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 浅析Mysql中的视图

    浅析Mysql中的视图

    这篇文章主要介绍了浅析Mysql中的视图,视图是从一个或者多个表中导出的表,视图的行为与表非常相似,在视图中用户可以使用SELECT语句查询数据,以及使用INSERT、UPDATE和DELETE修改记录,需要的朋友可以参考下
    2023-05-05

最新评论