zoukankan      html  css  js  c++  java
  • 【MAVEN】如何在Eclipse中创建MAVEN项目

    目录结构:

    contents structure [+]

    1,MAVEN简介

    MAVEN是一个项目构建工具,参与项目创建、导入jar包、编译、发布、测试、打包等过程。它的使用方式有两种:用户命令行和可视化界面。用户命令行就是直接在DOM窗口中输入指令进行管理,可视化界面比如MAVEN和Eclipse整合。

    2,MAVEN安装

    2.1 下载MAVEN

    在安装MAVEN之前应该把JDK安装好,关于JDK的安装和配置可以参见详解JDK的安装和配置。MAVEN和JDK类似,都是压缩包,下载完成后解压,配置环境变量即可,APACHE MAVEN下载。在下载之前应该先确定相应版本的MAVEN需要的JDK版本。MAVEN 3.3+需要JDK1.7及其以上,笔者下载的是MAVEN 3.5,JDK版本是1.8。

    下面就是笔者的解压后MAVEN路径: D:Program Files (x86)EXEapache-maven-3.5.0 

    2.2 配置环境变量

    • MAVEN_HOME =D:Program Files (x86)EXEapache-maven-3.5.0

    • MAVEN_OPTS = -Xms128m -Xmx512m(可选)

    然后再在path环境变量中追加MAVEN的配置: %MAVEN_HOME%in;

    2.3 测试

    配置好之后,我们来到DOM窗口,输入 mvn -v 。如果出现一些版本信息,那么MAVEN就是安装成功了。

    3,MAVEN仓库

    3.1 MAVEN仓库的工作原理

    MAVEN给我们带来的最大的好处就是管理jar包,MAVEN管理jar包的模式是从远程仓库中把jar包下载到本地仓库中。仓库可以理解为缓存的地址,就是缓存项目需要的jar包,那么随着项目的扩大,本地仓库肯定为越来越大。

    3.2 修改MAVEN本地仓库

    本地仓库默认是在 C:Users用户名.m2 epository 下,为了节约C盘的空间,我们将这个仓库的地址改为: D:Program Files (x86)EXEapache_maven_local_repository 。找打MAVEN的安装目录下的 conf/settings.xml 文件。然后我们在<settings>节点下,加上<localRepository>节点:

    <localRepository>D:/Program Files (x86)/EXE/apache_maven_local_repository</localRepository>

    然后再在DOM控制台中输入: mvn help:system ,回车后,我们就可以看到一些下载信息,等下载结束后,我们再到 D:Program Files (x86)EXEapache_maven_local_repository目录下,我们就可以看到许多文件了。

    3.3 使用阿里云的Maven仓库

    在墙内开发,下载速度一般比较慢,这时候可以使用阿里云的Maven仓库.

    直接在的 conf/settings.xml。里面加上阿里云的映射文件就可以了。

        <mirror>  
          <id>alimaven</id>  
          <name>aliyun maven</name>  
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
          <mirrorOf>central</mirrorOf>          
        </mirror> 

    4,Eclipse和MAVEN的整合的配置

    在Eclipse上整合MAVEN非常简单,我们只需要进行两个简单的设置就可以了。

    在Eclicpse的Window->Preferences->Maven->Installations下面,我们将maven添加进来。

    在Eclispe的Window->Preferences->Maven->User Settings中,我们将User Settings选项调换到MAVEN安装目录下的settings.xml文件夹。如果读者的setting.xml文件,也配置了 <localRepository></localRepository> 节点,那么可以看到Local Responsitoy的值就是 <localRepository> 节点下面的值。如果没有配置 <localRepository></localRepository>,那么Local Responsitory的值就是 C:Users用户名.m2 epository

    就设置这两个地方,然后就可以在Eclispe中创建MAVEN项目了。

    5,Eclipse上创建MAVEN项目

    我们在Eclipse菜单栏中点击File->New->Other->Maven,在弹出的对话框中会看到,如下图所示:

    点击Maven Project,然后可以看到:

    勾选create a simple project(skip archetype selection),点击next>后,我们可以看到:

    这里有几个参数Group Id、Artifact Id、Version、Packaging。其中Group Id表示组的id,在一些大型的分组开发中会使用。Artifact Id就是以前项目名。Version代表版本。Packaging有三个值jar、pom和war,其中jar代表普通java项目,war代表web项目,pom用于集合MAVEN组件的时候使用的。

    5.1 Eclispe中使用Maven搭建Spring MVC项目

    下面我们使用Maven构建一个Spring MVC,我们选择Packaging为war,然后点击Finish。

    src/main/java 里面是存储的java代码的地方

    src/main/resources 是存储配置文件的地方

    src/test/java 是测试java代码的地方

    src/test/resources 是测试配置文件的地方

    需要说明一些,这些文件都是是Eclipse分配给我们的可视化界面,是为了方便我们分类的。这是不是包!在tomcat中没有上面的这些的文件夹的。

    新建好的web项目下面是没有web.xml的,需要在右击Deploymeny Descriptor,然后点击Generate Deployment Descriptor,生成web.xml文件。

    Maven最大的好处就是自动管理相关的jar包,我在这里是搭建Spring webmvc框架,那么我们只需要打开pom.xml文件,然后在搜索spring-webmvc

    然后选择一个版本的Spring-webmvc。保存后,Eclipse就会开始下载相关的jar包了。如果Eclispe没有下载,那么可以右击项目,然后run->Maven install。

    进行下载相关的依赖包。如果在Libraries下出现Maven Dependencies包。

    如果报出错误:  The superclass " javax.servlet.http.HttpServlet" was not found on the java build path. ,那么有两种解决方法,第一种就和上面导入Spring-webmvc的方式一样,直接在输入框中搜索servlet-api,然后选择一个版本的。不过这种方式可能会引起导入的servlet-api.jar和原来的Tomcat不兼容,这个问题最好是从本地tomcat中添加,通过build path把本地的servlet-api.jar添加进来。

    到这里位置,一个简单的SpringMVC所需要的所有jar包就搞定了。然后我们像往常一样写代码和配置就可以了。

    项目总结构:

    HelloController.java 文件

    package cn.test.Controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class HelloController {
    
        @RequestMapping(value="/hello.do")
        public String hello(Model model){
            model.addAttribute("helloinfo", "HELLO WORLD");
            return "hello";
        }
    }
    HelloController.java

    applicationContext.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context" 
        xmlns:jdbc="http://www.springframework.org/schema/jdbc"  
        xmlns:jee="http://www.springframework.org/schema/jee" 
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:aop="http://www.springframework.org/schema/aop" 
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:util="http://www.springframework.org/schema/util"
        xmlns:jpa="http://www.springframework.org/schema/data/jpa"
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
        http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.1.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.1.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
        http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd">
        
        <context:component-scan base-package="cn"></context:component-scan>
        
        <mvc:annotation-driven></mvc:annotation-driven>
        
        <bean id="viewResolver"    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="viewClass">
                <value>org.springframework.web.servlet.view.InternalResourceView</value>
            </property>
            <!--jsp存放的目录-->
            <property name="prefix">
                <value></value>
            </property>
            <!--jsp文件的后缀-->
            <property name="suffix">
                <value>.jsp</value>
            </property>
        </bean>
        
    </beans>
    applicationContext.xml

    web.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
      <display-name>mavenSpringMVC</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>
      
      <servlet>
          <servlet-name>dispatcherServlet</servlet-name>
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </init-param>      
      </servlet>
      <servlet-mapping>
          <servlet-name>dispatcherServlet</servlet-name>
          <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      
    </web-app>
    web.xml

    hello.jsp文件

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    ${helloinfo}
    </body>
    </html>
    hello.jsp

    welcome.html文件

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <a href="hello.do">hello</a>
    </body>
    </html>
    welcome.html

    运行welcome.html文件后,打开连接就可以看到如下的界面:

    到这里表示我们数据请求就成功了。目前一个使用MAVEN管理的SpringMVC项目就完成了。Maven最主要的一个功能就是管理jar包,如果程序员手动导入jar包,很有可能就会遇到版本不兼容,报一大堆错,像这种各种jar包版本不兼容的问题是比较头疼的。Maven就使程序猿从中解放出来了,使得无需关系jar的版本问题。

    6,Eclipse中使用MAVEN管理的Web分布式开发

    在上面第5点,笔者介绍了如何利用Maven创建Web项目。Maven除了管理jar非常方便,它在模块开发方面也强大。完全支持开闭原则(对扩展开发,对修改关闭)。下面笔者就来介绍一下在Eclipse中使用Maven管理的web分布式开发。

    关于创建Maven项目的细节,笔者就不在这里赘述了,可以参见上面第5点。

    1,创建父模块(Project)

    其实这里的父模块指的就是一种Maven项目,在上面创建MAVEN项目时候说了,jar、war和pom的区别,如果我们需要使用Maven进行模块开发,那么packaging的类型就需要指定为pom。

     

    2,创建模块(Module)

     上面创建的父模块可以关联多个子模块,这里为了举例就只创建两个子模块(model1和model2)。在new->other->Maven中选中Maven Module,

    建立的Module名称为model1,关联的父模块的packaging的类型必须是pom。

    这里演示的是web分布式开发,所以Packaging选择了war。第二个model2同理第一个model1,到这里为止我们就完成了一个简单分布式web开发部署了。如果在model1或是model2里面编译程序,那么结果会立即同步到manager中去,因此可以在manager中对model1和model2进行分布式管理。

    三着在项目中的结构:

    我们可以看出在项父块中,有对两个子模块的关联。

    到这里关于Eclipse中进行MAVEN开发部署就讲解完了,如果读者觉得还不错,请点个赞。

  • 相关阅读:
    JS实现简单的运行代码 & 侧边广告
    JS封装Cookie
    [PHP]array_map与array_column之间的关系
    [PHP]json_encode增加options参数后支持中文
    [CI]CodeIgniter特性 & 结构
    [PHP]PHP缓存机制之Output Control
    [PHP]将回调函数作用到给定数组的单元上
    [Apache]网站页面静态化与Apache调优(图)
    [PHP]PHP自定义遍历目录下所有文件的方法
    [PC]PHPCMS配置文件的读取
  • 原文地址:https://www.cnblogs.com/HDK2016/p/7301034.html
Copyright © 2011-2022 走看看