开发工具链-maven核心教程-Maven整合SSH(Spring,SpringMVC,Hibernate)

简介


maven是一个项目管理工具,它的核心功能是:

  • 项目构建:统一开发规范与工具
  • 依赖管理:统一管理jar包

我们通过配置pom.xml来使用maven的这些功能:

在这里插入图片描述

它可以解决项目开发中常遇到的一些问题:

1、都是同样的代码,为什么在我的机器上可以编译执行,而在他的机器上就不行?

2、为什么在我的机器上可以正常打包,而配置管理员却打不出来?

3、项目组加入了新的人员,我要给他说明编译环境如何设置,但是让我挠头的是,有些细节我也记不清楚了。

4、我的项目依赖一些jar包,我应该把他们放哪里?放源码库里?

5、这是我开发的第二个项目,还是需要上面的那些jar包,再把它们复制到我当前项目的svn库里吧

6、现在是第三次,再复制一次吧 ----- 这样真的好吗?

7、我写了一个数据库相关的通用类,并且推荐给了其他项目组,现在已经有五个项目组在使用它了,今天我发现了一个bug,并修正了它,我会把jar包通过邮件发给其他项目组,这不是一个好的分发机制,太多的环节可能导致出现bug

8、项目进入测试阶段,每天都要向测试服务器部署一版。每次都手动部署,太麻烦了。

----此段摘自 https://blog.csdn.net/it_lihong/article/details/79088030

 

安装配置


mac上安装配置maven:

1.下载maven:下载完成后解压,放到想放的位置。

2.配置maven环境变量:

# java,tomcat,maven
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
CATALINA_HOME=/Library/java/tomcat/apache-tomcat-8.0.50
M2_HOME=/Library/Java/maven/apache-maven-3.5.3
PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$M2_HOME/bin:$PATH:.
CLASSPATH=JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

export JAVA_HOME
export CATALINA_HOME
export M2_HOME
export PATH
export CLASSPATH

按esc :wq回车,保存退出后

在终端输入 source ~/.bash_profile 以使文件生效。(勿忘这一步)

3.验证:终端输入: mvn -v
在这里插入图片描述

4.eclipse中配置maven

preferences->maven->installations 添加自己安装的maven
在这里插入图片描述
5.国内配置淘宝镜像:~/.m2/setting.xml(.m2是隐藏目录,shift+command+.显示隐藏目录)

<mirrors>
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
</mirrors>

 

Windows上安装配置maven:

1.下载maven:下载完成后解压,放到想放的位置。

2.配置maven环境变量:

M2_HOME=/Library/Java/maven/apache-maven-3.5.3

在path中添加%MAVEN_HOME%\bin;

3.验证:终端输入: mvn -v

4.eclipse中配置maven

preferences->maven->installations 添加自己安装的maven

5.国内配置淘宝镜像:用户文件夹/.m2/setting.xml(.m2是隐藏目录,win10文件浏览器菜单栏->查看->勾选隐藏的目录)

<mirrors>
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
</mirrors>

 

项目构建


maven项目结构

Maven在进行项目构建时,它对项目目录结构拥有约定,知道你的源代码在哪里,类文件应该放到哪里去。

Project

  |-src

  |   |-main

  |   |  |-java        —— 存放项目的.java文件

  |   |  |-resources   —— 存放项目资源文件,如spring, hibernate配置文件

  |   |-test

  |      |-java        ——存放所有测试.java文件,如JUnit测试类

  |      |-resources   —— 测试资源文件

  |-target             —— 目标文件输出位置例如.class、.jar、.war文件

  |-pom.xml           ——maven项目核心配置文件

创建及运行maven项目

step1:New->maven project
在这里插入图片描述
在这里插入图片描述
step2:选择工程模板

在这里插入图片描述
step3:填写maven坐标
在这里插入图片描述

step4:配置pom.xml : 添加servlet依赖,解决jsp报错问题。

<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/maven-v4_0_0.xsd">

	<modelVersion>4.0.0</modelVersion>

	<groupId>com.leon</groupId>

	<artifactId>demo</artifactId>

	<packaging>war</packaging>

	<version>0.0.1-SNAPSHOT</version>

	<name>demo Maven Webapp</name>

	<url>http://maven.apache.org</url>

	<!-- 版本常量 -->

	<properties>

		<!-- junit依赖 -->

		<junitVersion>3.8.1</junitVersion>

		<!-- jstl,servelt依赖 -->

		<jstlVersion>1.2</jstlVersion>

		<servletVersion>2.5</servletVersion>

	</properties>

	<!-- 依赖管理 -->

	<dependencies>

		<dependency>

			<groupId>junit</groupId>

			<artifactId>junit</artifactId>

			<version>${junitVersion}</version>

			<scope>test</scope>

		</dependency>

		<dependency>

			<groupId>jstl</groupId>

			<artifactId>jstl</artifactId>

			<version>${jstlVersion}</version>

		</dependency>

		<dependency>

			<groupId>javax.servlet</groupId>

			<artifactId>servlet-api</artifactId>

			<version>${servletVersion}</version>

			<scope>provided</scope>

		</dependency>

	</dependencies>

	<build>

		<finalName>demo</finalName>

	</build>

</project>

step5:运行项目

方式一:使用 Maven Build发布运行

右键项目->run as ->maven build …->goals输入tomcat:run ->run
在这里插入图片描述
在这里插入图片描述

方式二:当作普通javaWeb发布运行

servers视图->new server->新建一个Tomcat server->将maven项目add->启动服务器
在这里插入图片描述
在这里插入图片描述

 

导入maven项目


import->Existing Maven Projects->选择导入的maven项目的pom.xml->执行maven install

在这里插入图片描述

 

Maven搭建SSH(Spring MVC + Spring +Hibernate)框架


准备工作

1/安装并配置java运行环境

2/数据库的安装配置(Mysql)

3/安装并配置服务器(Tomcat)

4/安装并配置Maven

5/安装 springsource-tool-suite(可选插件)

6/ eclipse创建MAVEN web项目

导包

配置好pom.xml后,系统会自动到maven的中央仓库去下载相应的包.

/pom.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.leon.app</groupId>
    <artifactId>egg</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>

    <name>Getting Started with Spring on JBoss</name>

  <!-- 版本信息常量-->
  <properties>
    <encodeType>UTF-8</encodeType>
    <jdkVersion>1.7</jdkVersion>
    <mavenCompilerPluginVersion>3.1</mavenCompilerPluginVersion>
    <mavenWarPluginVersion>2.3</mavenWarPluginVersion>
    <jstlVersion>1.2</jstlVersion>
    <taglibVersion>1.1.2</taglibVersion>
    <servletVersion>2.5</servletVersion>
    <springVersion>4.3.1.RELEASE</springVersion>
    <hibernateVersion>4.3.5.Final</hibernateVersion>
    
  </properties>
  
  <dependencies>
  
    <!-- jsp页面使用的jstl支持-->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>${jstlVersion}</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>${taglibVersion}</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>${servletVersion}</version>
      <scope>provided</scope>
    </dependency>
    
     <!-- spring-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${springVersion}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${springVersion}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${springVersion}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
      <version>${springVersion}</version>
    </dependency>
    
    <!-- spring web + spring MVC-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${springVersion}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${springVersion}</version>
    </dependency>
    
    <!-- hibernate配置-->
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>${hibernateVersion}</version>
    </dependency>
    
    
  </dependencies>
  
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${mavenCompilerPluginVersion}</version>
        <configuration>
          <source>${jdkVersion}</source>
          <target>${jdkVersion}</target>
          <encoding>${encodeType}</encoding>
        </configuration>
      </plugin>
    </plugins>
    <finalName>egg</finalName>
  </build>
</project>

SpringMVC配置

1、/egg/src/main/resources/spring-mvc.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:mvc="http://www.springframework.org/schema/mvc"
    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/mvc
     http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">

    <!-- 启用spring mvc 注解 -->
    <mvc:annotation-driven />
    <!-- 设置使用注解的类所在的jar包 -->
    <context:component-scan base-package="com.leon" />
    
    <!-- 页面路径解析:在请求时模型视图名称添加前后缀 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /><!--默认,可不配。 决定视图类型,如果添加了jstl支持(即有jstl.jar),那么默认就是解析为jstl视图 -->  
        <property name="prefix" value="/WEB-INF/jsp/" />     
        <property name="suffix" value=".jsp" /><!--可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑  -->   
    </bean>

    <!-- 对静态资源文件的访问 -->
    <mvc:resources mapping="/images/**" location="/static/images/" />
    <mvc:resources mapping="/js/**" location="/static/js/" />
    <mvc:resources mapping="/css/**" location="/static/css/"  />

</beans>

2、/egg/src/main/webapp/WEB-INF/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_3_0.xsd" version="3.0">
    <display-name>egg</display-name>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <!-- spring MVC DispatcherServlet config start -->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!-- 此处指向的的是SpringMVC的配置文件 -->
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <!--配置容器在启动的时候就加载这个servlet并实例化 -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!-- spring MVC DispatcherServlet config end -->

</web-app>

参考文献

框架篇:Spring+SpringMVC+hibernate整合开发

Spring Tool Suite(STS)和Maven建立的Spring mvc 项目

Maven常见问题及解决


1、Web Version修改

将web version由默认的2.3修改为3.0

首先看到这个下面这个界面(没有这个view的话,Window->Show View->Navigator

在这里插入图片描述

打开我选中的org.eclipse.wst.common.project.facet.core.xml这个文件

原内容如下:

<?xml version="1.0" encoding="UTF-8"?>  

<faceted-project>  

    <fixed facet="wst.jsdt.web"/>  

    <installed facet="jst.web" version="2.3"/>  

    <installed facet="wst.jsdt.web" version="1.0"/>  

    <installed facet="java" version="1.8"/>  

</faceted-project>  

修改jst.web这个属性如下:

<?xml version="1.0" encoding="UTF-8"?>  
<faceted-project>  
  <fixed facet="wst.jsdt.web"/>  
  <installed facet="jst.web" version="3.0"/>  
  <installed facet="wst.jsdt.web" version="1.0"/>  
  <installed facet="java" version="1.8"/>  
</faceted-project>

这样就可以将Web version从默认的2.3修改成3.0

2、JDK Version修改

修改jdk版本为1.8

打开pom.xml文件,找到标签

添加如下标签:

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

3、maven提示需要更新Maven项目

项目右击-》Maven-》Update Project完成。

参考文献

https://www.yiibai.com/maven/

 
后记: 好记性不如烂笔头,写这篇maven教程,主要是为了备忘,如果能帮到新入坑的小伙伴,那就更好了。

Thank you for reading.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值