目录结构:

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)\EXE\apache-maven-3.5.0

2.2 配置环境变量

  • MAVEN_HOME =D:\Program Files (x86)\EXE\apache-maven-3.5.0

  • MAVEN_OPTS = -Xms128m -Xmx512m(可选)

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

2.3 测试

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

3,MAVEN仓库

3.1 MAVEN仓库的工作原理

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

3.2 修改MAVEN本地仓库

本地仓库默认是在 C:\Users\用户名\.m2\repository 下,为了节约C盘的空间,我们将这个仓库的地址改为: D:\Program Files (x86)\EXE\apache_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)\EXE\apache_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\repository 。

就设置这两个地方,然后就可以在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开发部署就讲解完了,如果读者觉得还不错,请点个赞。

【MAVEN】如何在Eclipse中创建MAVEN项目的更多相关文章

  1. 如何在Eclipse中创建web项目并使用tomcat8 运行servlet开发简单的动态网页?

    今天花了一天时间.因为用eclipse没多久,不是很熟悉使用,看的教程又是使用myeclipse的,但是eclipse相对没有myeclipse灵活,所以在网上找了很多资料,最后算是可以实现了.新手可 ...

  2. 在Eclipse中创建Django项目

    在以前的分享中,我们是在命令行模式下创建Django项目的,那么,如何在IDE中使用Django呢? 本文将介绍如何在Eclipse中创建Django项目. 首先,新建Django项目mysite,如 ...

  3. 在eclipse中创建maven webapp项目时弹出错误-解决办法

    在eclipse中创建maven webapp项目时报错: Could not resolve archetype org.apache.maven.archetypes:maven-archetyp ...

  4. (3)Maven快速入门_3在Eclipse中创建Maven项目打包成jar

    Eclipse中创建Maven项目 new ---> maven project  ----> next 如下 普通java项目 选择  如下 quickstart 创建项目 : 输入 G ...

  5. Java归去来第4集:java实战之Eclipse中创建Maven类型的SSM项目

    一.前言 如果还不了解剧情,请返回第3集的剧情          Java归去来第3集:Eclipse中给动态模块升级 二.在Eclipse中创建Maven类型的SSM项目 2.1:SSM简介 SSM ...

  6. Eclipse中创建Maven项目失败

    Eclipse中创建Maven项目报错:Unable to create project from archetype org.apache.maven.archetypes:maven-archet ...

  7. 在Eclipse中创建Maven多模块项目

    在Eclipse中创建Maven多模块项目1,创建多模块项目选择File>New>Project,打开New Project窗口,选择Maven>Maven Project,选择下一 ...

  8. 【HANA系列】SAP ECLIPSE中创建ABAP项目失败原因解析

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP ECLIPSE中创建AB ...

  9. 【HANA系列】SAP ECLIPSE中创建ABAP项目的步骤

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP ECLIPSE中创建AB ...

随机推荐

  1. wamp因配置错误而导致apache无法启动的问题

    在使用wamp搭建一个PHP项目环境时,却出现了apache无法启动的问题   通过查看window的错误日志才发现apache出现了错误   错误的原因说的很清楚,是因为配置文件中的Director ...

  2. Eclipse关掉项目SVN的链接

    有时候 svn 会导致 eclipse 反应很慢,可以关掉 svn项目信息展现. 1. 点击项目文件夹,右键出现项目信息 2. 选择team项 3. Disconnect.

  3. 大智慧专业财务PFFIN(N,M)函数N的取值一览表

    每股指标 1001 摊薄每股收益 1002 净资产收益率 1003 每股经营活动现金流量 1004 每股净资产 1005 每股资本公积金 1006 每股未分配利润 1007 每股主营收入 1008 扣 ...

  4. Shader开发工具: PVRShaman

    1. A PVRShaman (.POD) workspace is provided as an example in the Chapter_10/PVR_LinearFog folder tha ...

  5. sed awk tr等文本处理命令

    指定行范围替换: sed -i "520,950s/\(.*\)\(HOST_CMD_.*\)\(,\)/\1{ \2, \"\2\" },/g" hostCm ...

  6. typescript - 前言介绍

    众所周知,JavaScript是弱语言(子承父业都表达不了),因此比较大的企业考虑到可维护性以及安全性来说,都不用它开发,因此Typescript诞生了,它并不是为了替换JavaScript而诞生的, ...

  7. js - 关于循环

    ES5:for,foreach,for..in ES6:for..of // ES5(可参见ES6的析构写法) const value = ["a", "b", ...

  8. vsphere storage appliance工作原理和实施

    摘录自:http://www.07net01.com/storage_networking/VMwarexunihuazhiVSA_vSphere_Storage_Appliance_qunji_yi ...

  9. SHELL AWK 循环求和

    1.简单求和,文件如下: [linux@test /tmp]$ cat test 123.52 125.54 126.36 求和: [linux@test /tmp]$ awk '{sum += $1 ...

  10. JERSEY中文翻译(第三章、JAX-RS Application, Resources and Sub-Resources)

    JAX-RS Application Resource and Sub-Resource 本章要介绍的是JAX-RS的核心概念——Resouce.Sub-Resource JAX-RS的2.0的jav ...