一、Maven

Maven是Apache下的一个纯java开发的开源项目,它是一个项目管理工具,使用maven对java项目进行构建、依赖管理。

1.项目构建

项目构建是一个项目从编写源代码到编译、测试、运行、打包、部署、运行的过程。

传统项目构建过程
1)在IDEA中创建一个java web工程
2)在工程中编写源代码及配置文件等
3)对源代码进行编译,java文件编译成class文件
4)执行Junit单元测试
5)将工程打成war包部署至tomcat运行
maven项目构建过程

maven将项目构建的过程进行标准化,每个阶段使用一个命令完成。

maven包反编译java 如何用maven编译java代码_jar包


上图中部分阶段对应命令如下:

清理阶段对应maven的命令是clean,清理输出的class文件。

编译阶段对应maven的命令是compile,将java代码编译成class文件。

打包阶段对应maven的命令是package,java工程可以打成jar包,web工程可以打成war包。

运行一个maven工程(web工程)需要一个命令:tomat:run

  • maven工程构建的优点:
    (1)一个命令完成构建、运行,方便快捷。
    (2)maven对每个构建阶段进行规范,非常有利于大型团队协作开发。
2.依赖管理

就是对项目所有依赖的jar包进行规范化管理。

传统项目的依赖管理

传统的项目工程要管理所依赖的jar包完全靠人工进行,程序员从网上下载jar包添加到项目工程中,添加到工程中的WEB-INF/lib目录下。

  • 手工拷贝jar包添加到工程中的问题是
    (1)没有对jar包的版本统一管理,容易导致版本冲突。
    (2)从网上找jar包非常不方便,有些jar找不到。
    (3)jar包添加到工程中导致工程过大。
maven项目的依赖管理

maven项目管理所依赖的jar包不需要手动向工程添加jar包,只需要在pom.xml(maven工程的配置文件)添加jar包的坐标,自动从maven仓库中下载jar包、运行。

  • 使用maven依赖管理添加jar包的好处
    (1)通过pom.xml文件对jar包的版本进行统一管理,可避免版本冲突。
    (2)maven团队维护了一个非常全的maven仓库,里边包括了当前使用的jar包,maven工程可以自动从maven仓库下载jar包,非常方便。
3.使用maven的好处
  1. 一步构建
    maven对项目构建的过程进行标准化,通过一个命令即可完成构建过程。
  2. 依赖管理
    maven工程不用手动导jar包,通过在pom.xml中定义坐标从maven仓库自动下载,方便且不易出错。
  3. maven的跨平台,可在window、linux上使用。
  4. maven遵循规范开发有利于提高大型团队的开发效率,降低项目的维护成本,大公司都会考虑使用maven来构建项目。

二、Maven的下载,安装,配置

1.网站 http://maven.apache.org/download.cgi下载

maven包反编译java 如何用maven编译java代码_jar包_02


2.安装解压即可,注意不要解压在中文路径下

3.配置Maven

在环境变量中 新建变量名MAVEN_HOME 值为Maven的安装路径

然后在PATH中引用你的MAVAEN_HOME。

maven包反编译java 如何用maven编译java代码_jar包_03


4.查看配置是否成功:可在黑窗口中输入 mvn –v 出现如下图所示说明配置成功;如果有时出现不是本地命令,也不是本地命令,可以用管理员身份打开黑窗口

maven包反编译java 如何用maven编译java代码_jar包_04


5.配置本地仓库

在任意盘符下新建一个目录作为仓库,然后在Maven的安装目录下找到conf目录下的settings.xml配置文件。

maven包反编译java 如何用maven编译java代码_maven_05


maven包反编译java 如何用maven编译java代码_maven_06


本地仓库目录建好后 打开 settings.xml文件进行配置本地仓库

D:\my_maven_local_repository

maven包反编译java 如何用maven编译java代码_jar包_07

三、Maven项目工程目录约定

使用maven创建的工程我们称它为maven工程,maven工程具有一定的目录规范,如下:

Project
  |-src
  |   |-main
  |   |  |-java        —— 存放项目的.java文件
  |   |  |-resources   —— 存放项目资源文件,如spring, hibernate配置文件
         |-webapp     —— webapp目录是web工程的主目录
            |-WEB-INF
              |-web.xml
  |   |-test
  |      |-java        ——存放所有测试.java文件,如JUnit测试类
  |      |-resources   —— 测试资源文件
  |-target             —— 目标文件输出位置例如.class、.jar、.war文件
  |-pom.xml           ——maven项目核心配置文件
1.pom.xml 文件

一个maven工程都有一个pom.xml文件,通过pom.xml文件定义项目的坐标、项目依赖、项目信息、插件目标等。

<!-- 依赖关系 -->
	<dependencies>
		<dependency>
			<!-- junit的项目名称 -->
			<groupId>junit</groupId>
			<!-- junit的模块名称 -->
			<artifactId>junit</artifactId>
			<!-- junit版本 -->
			<version>4.9</version>
			<!-- 依赖范围:单元测试时使用junit -->
			<scope>test</scope>
</dependency>
2.定义maven坐标

每个maven工程都需要定义本工程的坐标,坐标是maven对jar包的身份定义。

<!--项目名称,定义为组织名+项目名,类似包名-->
<groupId>org.westos</groupId>
<!-- 模块名称 -->
<artifactId>maven-first</artifactId>
<!-- 当前项目版本号,snapshot为快照版本即非正式版本,release为正式发布版本 -->
<version>0.0.1-SNAPSHOT</version>
<packaging > :打包类型
	jar:执行package会打成jar包
	war:执行package会打成war包
	pom :用于maven工程的继承,通常父工程设置为pom

四、使用IDEA来开发Maven项目

1.首先在IDEA中配置Maven

maven包反编译java 如何用maven编译java代码_maven_08

2.使用IDEA创建一个Maven项目

File-New-Project 弹出如下窗口 –选择Maven项目

maven包反编译java 如何用maven编译java代码_maven包反编译java_09


maven包反编译java 如何用maven编译java代码_jar包_10


maven包反编译java 如何用maven编译java代码_xml文件_11


maven包反编译java 如何用maven编译java代码_xml文件_12


Maven项目创建好后,我们看一下目录结构,发现,有的目录IDEA并没有帮我们自动创建。需要我们手动创建,注意手动创建要符合Maven规定的目录结构。

3.创建目录结构,改变目录类型

maven包反编译java 如何用maven编译java代码_maven_13


maven包反编译java 如何用maven编译java代码_xml文件_14

4.创建一个简单的Servlet,在pom.xml文件中添加依赖jia包

maven包反编译java 如何用maven编译java代码_maven_15


Servlet会报错,是因为Servlet找不到API。我们通过在pom.xml文件中通过配置jar包坐标从仓库中找到我们所需要的jar包。

maven包反编译java 如何用maven编译java代码_xml文件_16

5.通过tomcat插件发布我们的项目

在pom.xml文件的标签内部配置一个tomcat插件

<!-- 配置Tomcat插件 -->
<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.2</version>
</plugin>

然后我们添加我们的Maven的项目

maven包反编译java 如何用maven编译java代码_jar包_17


maven包反编译java 如何用maven编译java代码_jar包_18


maven包反编译java 如何用maven编译java代码_maven包反编译java_19


maven包反编译java 如何用maven编译java代码_jar包_20

  • 注意运行之前检查你的pom.xml文件中 jsp的jia包和 servlet的jar包坐标的依赖范围要写上 如下图:

    如果pom.xml中jsp和servlet的jar包依赖范围配好了,出现如下图

五、搜索我们所需要的jar包

1.远程仓库

网站:http://mvnrepository.com/
搜索所需要的jar包,复制jar包坐标粘贴到过程的pom.xml文件中即可

2.本地仓库

搜索本地仓库的jar包自动添加jar包坐标

在pom.xml文件中,按alt+insert快捷键,弹出一个框

maven包反编译java 如何用maven编译java代码_jar包_21


在所罗列的jar包中,选择你所需要的jar包即可。

maven包反编译java 如何用maven编译java代码_maven_22


如果本地仓库不全,可以更新一下本地仓库

maven包反编译java 如何用maven编译java代码_maven包反编译java_23

3.阿里云的jar包仓库
<!-- 配置阿里云的私服下载jar包更快 -->
<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>