[转]Eclipse建立Maven项目

构建Maven项目的完整过程--普通web项目(Eclipse)

 进行如下步骤的前提是你已经安装好本地maven库和eclipse中的maven插件了(有的eclipse中已经集成了maven插件)html

1、Maven项目的新建java

一、鼠标右键---->New----->Other...web

二、直接点击下一步app

三、选中 maven-archetype-webapp 后点击下一步eclipse

四、 Group Id 中输入项目的基本包名。webapp

      Artifact Id 中输入项目名。jsp

      Version 中的值默认就行,不进行选择。maven

      Package 中写的是默认生成的一个包名,不写也能够。post

   接着点击完成就能够了。测试

 

五、建立好项目后结构以下:

  ------web.xml 的版本是2.3的,是老版本

  ------新生成的工程默认的 jdk 和 compiler 都是1.5 的

  ------并且没有src/main/java 这样结构的 maven 目录

2、Maven项目的配置

一、修改web.xml

因为Maven中的 maven-archetype-webapp 样板项目的 web.xml 是2.3版本的,咱们须要替换成新版本:

能够在Eclipse中新建一个web工程,将它 WebContent/WEB-INF 目录下的 web.xml 文件复制替换掉咱们的 Maven 项目中 src/main/webapp/WEB-INF/ 目录下的web.xml 文件。

原来的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>
复制代码

替换后的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>mydemo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>
复制代码

二、pom.xml 里面build 标签下添加 maven编译插件

复制代码
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
复制代码

 三、添加缺乏的目录并指定输出路径

Maven规定,必须建立如下几个包,而且分别对应相应的输出路径

  src/main/resources

  src/main/java

  src/test/resources

  src/test/java

右键项目----->BUild Path----->Configure Build Path...

(1)在Order and Export (这里是控制项目中包的显示顺序的)这个栏里会发现有几个目录显示missing(丢失),随便选中一个改变下顺序(Up 或者 Down 或者 Top 或者 Bottom),而后点击应用,OK,丢失的目录会在项目中显示出来,再次进到这个地方,红叉标识已经消失了。(这一步比较奇怪,多是eclipse中maven插件的bug吧)

(2)接着在Source里会发现已经有三个目录了,因此点击Add Folder... 添加缺乏的目录(这里注意把Allow output folders for source folders 上,方便下一步进行输出路径的设置)

点击Create New Folder... ,输入缺乏的包名,直接点击完成,回到这个界面点击OK就行

(3)接着就会看到Source这里多了一个刚才添加的包,这个新加的包没有指定输出目录,须要进行修改

在Source 里面设定4个文件夹的输出Output folder,双击进行修改

分别修改输出路径为

/src/main/resources  对应  target/classes

/src/main/java           对应  target/classes

/src/test/resources      对应  target/test-classes

/src/test/java             对应  target/test-classes

我这只须要修改第四个目录就能够了(前三个都默认设置好了,若是你的没设置好就设置一下)

 最终的效果以下图所示:

此时的目录结构为:

能够看出已是maven项目的结构了(这里有报错,报的是Cannot change version of project facet Dynamic Web Module to 3.1,先无论,最后再处理)

四、配置项目部署程序集(Web Deployment Assembly)

右键项目----->Properties----->Deployment Assembly

(1)删除test的两项,由于test是测试使用,并不须要部署。

(2)添加Maven依赖,设置将Maven的jar包发布到lib下,若是已经有了就不须要添加了。 
    Add -----> Java Build Path Entries -----> Maven Dependencies -----> Finish

最终是这样的

3、将Maven项目转换成Dynamic Web Project

(1)右键项目----->Properties

在左侧选择 Project Facets,单击右侧的 Convert faceted from 

刚进来时是这样的,须要把Dynamic Web Module (动态web模块)的版本修改成 3.1 (最新版),Java的版本修改成项目用的1.8

这里可能会报一个错误,在修改动态web模块版本的时候会提示Cannot change version of project facet Dynamic Web Module to 3.1

没关系,只须要去掉动态web模块前面的对勾,点击OK,接着再进入这个界面就可以修改动态web模块的版本了。

修改完成是这样的,接下来单击 Further Configuration available... (进一步可用的配置)连接

下面若是没有显示出 Further Configuration available... 的话,能够在Dynamic Web Module 前去掉打钩,点击应用,而后再填上钩,再点击应用,通常 Further Configuration available... 就会出现了。

修改 Content directory(内容目录) 的值 WebContent 为 src/main/webapp ,单击OK,而后回到上一步窗口直接点击OK

这里可能出现的问题是,会给你个提示目录错误的弹窗,没关系,你能够检查下以前文件输出路径的设置是否有问题(Java Build Path -----> Source),修改过来应该就没问题了

完成这一步以后你能够检查下你的Java Build Path 中的Libraries 中的jdk版本,还有Java Compiler (编译环境),发现都已经改成1.8版本了。

(2)接下来你项目中的pom.xml 可能报一个错 web.xml is missing and <failOnMissingWebXml> is set to true ,若是没报错,能够忽略不看

解决办法:

使用maven建立项目有时在pom.xml的war处出现failOnMissingWebXml的错误,根据pom.xml 能够知道这个项目是web项目,打包时打成war包。

错误提示的是丢失web.xml,因此若是项目里没有web.xml,则在项目里添加一个web.xml,刷新一下项目,就应该没有错误了。

若是还有错的话就须要在eclispe上方点击Project ----->Clean 清理一下这个项目了。

通过这两步错误就应该已经清除了。

(3)到这一步,web项目就建立完毕了,能够看一下你的项目结构,若是有什么build目录,WebContent 目录的话能够直接删除(确保你的输出目录之类的已经设置好了)

直接把页面资源放置在src/main/webapp/ 目录下,因此最终的项目结构以下所示:

基本上清除未知错误的方法是:

一、右键项目----->Run As----->Maven clean

二、Project----->Clean...

三、右键项目----->Maven----->Update Project...

若是没效果,能够试着把pom.xml稍微修改下,好比加个空格之类的,再进行一次,应该就不报错了。(*^◎^*)

 

(本文转载自坚果核 https://www.cnblogs.com/wbyp/p/7392681.html

相关文章
相关标签/搜索