【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开发部署就讲解完了,如果读者觉得还不错,请点个赞。

原文地址:https://www.cnblogs.com/HDK2016/p/7301034.html