eclipse搭建maven project的spring4 spring mvc mybatis

一,先确定已经安装好了Eclipse Java EE IDE for Web Developers我用的是如下版本

Version: Neon.3 Release (4.6.3)
Build id: 20170314-1500

然后新增一个Maven project如下图,勾选上前2个复选框



 二,填写groupid和artifactid等,最关键的是要选war类型的packaging,如下图:



三,然后修改如下3个地方的jdk配置为1.8并且把Project Facets中的Dynamic web module选为3.1

 

 

 这里也可以直接把Runtimes中的Apache Tomcat v8.5选上,后续就不需要加tomcat的library了,推荐这样做

 

 

 






四、修改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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.xhl</groupId>
    <artifactId>eduhomeweb</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>xhleduhomewebportal</name>
    <description>xhl edu related home web portal</description>



    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>


    <properties>
        <srping.version>4.3.6.RELEASE</srping.version>
        <mybatis.version>3.4.3</mybatis.version>
        <mybatis-spring.version>1.3.1</mybatis-spring.version>
        <mysql.version>5.1.41</mysql.version>
        <log4j2.version>2.8.2</log4j2.version>
        <taglibs.version>1.2.5</taglibs.version>
        <dbcp2.version>2.1.1</dbcp2.version>
    </properties>


    <!--spring related start -->
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-instrument</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-instrument-tomcat</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc-portlet</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-websocket</artifactId>
            <version>${srping.version}</version>
        </dependency>
        <!--spring related end -->

        <!--mybatis related start -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis-spring.version}</version>
        </dependency>
        <!-- mybatis related end -->
        <!-- mysql related start -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
        <!-- mysql related end -->

        <!-- log4j2 related start -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <!-- log4j2 related end -->

        <!-- taglibs related start -->
        <dependency>
            <groupId>org.apache.taglibs</groupId>
            <artifactId>taglibs-standard-spec</artifactId>
            <version>${taglibs.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.taglibs</groupId>
            <artifactId>taglibs-standard-impl</artifactId>
            <version>${taglibs.version}</version>
        </dependency>
        <!-- taglibs related end -->

        <!-- dbcp2 related start -->
        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>${dbcp2.version}</version>
        </dependency>
        <!-- dbcp2 related end -->



    </dependencies>

</project>

然后执行Maven选项中的Update project,执行完后再检查下上面提到的3个jdk配置是否变化

 

五、然后新增一个eclipse的dynamic web project然后把WEB-INF/web.xml和META-INF目录下的文件拷贝到Maven工程的webapp目录下,如下图:



六、然后检查一下如下图的Deployment Assembly是不是正确



七、然后把dto、dao、service、controller等加入项目就可以通过发布到tomcatv8.5进行页面访问了,但是需要注意由于没有把tomcat的相关jar包包含进来,所以开发jsp和servlet的时候会报错,所以需要把如下图的tomcat相关lib加入build path(如果前面步骤勾选了Runtimes中的Apache Tomcat v8.5这一步就不需要做了)




 

 

遇到问题:

(1)搭建好maven的web工程后Publish到tomcat v8.5的时候eclipse弹框报错:
Publishing failed Could not publish to the server. 
java.lang.IndexOutOfBoundsException
或者报错:
Updating status for Apache Tomcat v8.5 at localhost...... java.lang.IndexOutOfBoundsException
解决办法:
有可能是maven的repository里有文件损坏导致的错误,我把C:\Users\Administrator\.m2\repository目录下的所有文件目录删除了,然后重新通过maven下载一次就解决了
 
(2)在eclipse的problems中出现如下2个错误
 Dynamic Web Module 3.1 requires Java 1.7 or newer
One or more constraints have not been satisfied
解决方法:
概述:使用maven构建web项目时,经常会遇见这个问题,问题原因报错讲述的很清晰明了,就是web模块需要使用java1.7及以后的版本,目前的版本不符合。因而只需要修改java版本到1.7及以上即可。
 
        解决方法:
        1. 在eclipse 构建 web中关于java版本有三处需要修改统一。
            (1)在 Java Build Path的libraries中修改
            (2)在Java Compiler 中修改
            (3)在Project Facet中修改
        2. 大部分按上上述修改就应该可以了,但总是有意外,还是报错。因为使用了 maven构建项目,因而最好在pom.xml文件中的build标签中加入以下代码:
 
 <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>    //如果是1.7,修改为1.7
                    <target>1.8</target>     //如果是1.7,修改为1.7
                </configuration>
            </plugin>
        </plugins>
    </build>
 
         3.最后再右键使用maven的Update Project 即可。
posted @ 2017-05-29 07:56  kuroniko  阅读(766)  评论(0编辑  收藏  举报