Maven项目的构建与管理[转]

1.Maven命令

Maven是Apache的一个跨平台的软件项目管理和构建工具,主要用于基于java平台的项目构建、依赖管理。

Maven项目构建过程如上图所示,主要构建命令有几种:

mvn validate 验证,验证项目是正确的并且所有的信息是可用的;

mvn clean 清理,清理项目缓存输出,一般是target文件夹被删除;

mvn compile 编译,将java源文件编译成.class文件;

mvn test 测试,生成测试报告,运行test目录下的所有单元测试;

mvn package 打包,将项目打成jar、war或者pom;

mvn install 安装,将当前项目安装到本地maven库,供其他项目依赖。

mvn deploy部署,在构建环境中完成,复制最终的包到远程库。

执行后面的命令会自动执行前面的命令,比如执行mvn package时会执行validate、clean、compile、test、package五个阶段。

2.Maven安装与配置

1)安装jdk1.7并配置环境变量

2)安装并配置maven环境变量

到maven官网下载maven最新版压缩包,解压到本地,添加系统环境变量

MAVEN_HOME: D:\develop\apache-maven-3.5.0

Path:  % MAVEN _HOME%\bin

以上两步配置完毕后,在命令行执行mvn –v,可以maven版本信息和基本配置信息表示配置成功。

3)自定义maven仓库位置

找到maven安装目录conf,打开setting文件,修改localRepository节点配置为指定路径即可,比如:<localRepository>D:/maven/repository</localRepository>

4)maven安装目录结构

说明:

bin中存放可执行的二进制文件

conf存放settings.xml文件

lib  运行maven所依赖的jar包

5)maven项目目录约定

src/main/java      存放项目的java源文件

src/main/resources  存放项目的资源文件,如spring,hibernate、mybatis的配置文件

src/test/java       存放所有的测试的java文件

src/test/resources   存放测试用的资源文件

target            项目输出位置

pom.xml  依赖管理文件

3.Maven核心概念

1)项目对象模型

说明:maven根据pom.xml文件,把它转化成项目对象模型(POM),这时要解析依赖关系,然后去相对应的maven库中查找所依赖的jar包。在clean,compile,test,package等生命周期阶段都有相应的Plug-in来做这些事情,而这些plug-in会产生一些中间产物。

2)maven仓库

Maven仓库用来存放Maven管理的所有Jar包。分为:本地仓库local和中央仓库central。

本地仓库:Maven本地库的Jar包仓库。

中央仓库:Maven官方提供的远程仓库。

当项目编译时,Maven首先从本地仓库中寻找项目所需的Jar包,若本地仓库没有,再到Maven的中央仓库下载所需Jar包到本地仓库。

3)maven坐标

坐标是Jar包的唯一标识,Maven通过坐标在仓库中找到项目所需的Jar包。

groupId:定义当前maven项目属于哪个项目

artifactId:定义实际项目中的某一个模块

version:定义当前项目的当前版本

packaging:定义当前项目的打包方式

4)依赖管理

依赖分为传递依赖、排除依赖,还有依赖冲突解决

  • 传递依赖:如果项目引用了一个Jar包,而该Jar包又引用了其他Jar包,那么在默认情况下项目编译时,Maven会把直接引用和间接引用的Jar包都下载到本地。
  • 排除依赖:如果我们只想下载直接引用的Jar包,那么需要在pom.xml将需要排除的Jar包的坐标写在中。
  • 依赖冲突:若项目中多个Jar同时引用了相同的Jar时,会产生依赖冲突,但Maven采用了最短路径优先和声明优先两种避免冲突的策略,因此在Maven中是不存在依赖冲突的。

5)聚合与继承

  • 聚合:多个项目或者模块聚合到一起,建立一个package方式为pom的项目parent专门负责聚合工作,并使用modules-module指定子模块。
  • 继承:多个模块聚合时,子模块需要继承父模块以消除重复。

4.Maven项目结构的几种构建方式

1)手动建立maven目录

安装Maven项目目录约定手动创建各个文件夹即可,一般不会使用这种方式;

2)命令行maven命令自动创建maven项目

本地磁盘建立一个空目录C:/maven/hello,命令行进入到hello目录,执行下面的命令

mvn archetype:generate -DgroupId=com.cloud.hellomaven -DartifactId=hellomaven-service -Dversion=1.0.0-SNAPSHOT -Dpackage=com.cloud.service

执行成功的话会自动在hello中创建符合maven项目约定的目录结构。

说明:

archetype:generate:生成maven项目骨架

-DgroupId指定maven坐标的groupId

- DartifactId指定maven坐标的artifactId

- Dversion指定maven坐标的version

- Dpackage指定maven项目的src下的包名

自动创建的maven项目结构如下

3)Eclipse IDE创建maven项目

Eclipse提供了一个很好的插件m2eclipse无缝将Maven和Eclipse集成在一起,配置插件选择本地maven目录和配置文件setting.xml即可。

点击Eclipse菜单栏File->New->Ohter->Maven,选择Maven Project,一路默认Next,有一步需要填写Group Id、Artifact Id、Version、选择打包方式Package(jar、war、pom),选择编译环境即可

完成后目录结构如下

4)Idea IDE创建maven项目

Idea IDE是一款很不错的开发Maven项目的IDE,创建一个maven web项目的过程如下:

选择File-New-Project,选择Maven,勾选Create from archetype,选择maven-archetype-webapp,

点击Next,填写Group Id、Artifact Id、Version三项

点击Next,选择Maven home,选择setting file

点击Next,填写Project name,选择项目路径即可

Finish完成maven web项目创建

5.Pom.xml文件简单解析

<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/xsd/maven-4.0.0.xsd"
>
   <modelVersion>4.0.0</modelVersion>
   <!-- 子模块对父模块的继承,继承父模块的所有依赖 -->
   
<parent>
      <groupId></groupId>
      <artifactId></artifactId>
      <version></version>
   </parent>
   <!-- 指定多个模块一起进行编译 -->
   
<modules>
      <module></module>
   </modules>

<!--groupId 反写的公司网站+项目名称  -->
   
<groupId>com.demo.ssm</groupId>
   <!--artifactId 项目名称+模块名称  -->
   
<artifactId>demo-ssm</artifactId>
   <!--第一个0表示大版本号
          第二个
0表示分支版本号
            第三个
0表示小版本号 0.0.1
        snapshot
快照 alpha内部测试 beta公测
        Release
稳定版本 GA正式发布
    
-->
   
<version>0.0.1-SNAPSHOT</version>
   <!-- 默认是jar 可以是war jar pom -->
   
<packaging>jar</packaging>
   <!--项目描述名称-->
   
<name>demo-ssm</name>
   <!--项目地址-->
   
<url>www.gseem.com</url>
   <!--项目描述-->
   
<description>这是项目描述</description>
   <!--开发者列表-->
   
<developers>feiyue</developers>
   <!--项目许可证-->
   
<licenses></licenses>
   <!--项目组织信息-->
   
<organization></organization>
   <!--项目属性-->
   
<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>
   
   <!--项目依赖列表-->
   
<dependencies>
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.9</version>
         <type></type>
         <!-- 作用范围 -->
         
<scope>test</scope>
         <!-- 设置依赖是否可选-->
         
<optional></optional>
         <!-- 排除依赖传递列表 -->
         
<exclusions>
            <exclusion></exclusion>
         </exclusions>
      </dependency>
      <dependency>
         <groupId>com.demo.maven</groupId>
         <artifactId>demo.maven</artifactId>
         <version>0.0.1-SNAPSHOT</version>
      </dependency>
   </dependencies>

<!-- 依赖的管理 -->
       
<dependencyManagement>
      <dependencies>
         <dependency></dependency>
      </dependencies>
   </dependencyManagement>

<build>
      <!-- 插件列表 -->
      
<plugins>
         <plugin>
            <groupId></groupId>
            <artifactId></artifactId>
            <version></version>
         </plugin>
      </plugins>
   </build>
</project>

时间: 2024-08-29 22:59:06

Maven项目的构建与管理[转]的相关文章

虚拟项目团队构建与管理

背景 虚拟项目团队是指一群跨越空间.跨越时区和组织边界的人们通过先进的通讯和信息技术,为了实现共同的目标而在有限的时间范围内协同工作的团队.虚拟项目团队包括一个项目管理者和一定数量的团队成员.虚拟项目团队具有灵活的成员人数,清晰的边界,确定的消费者,技术上必备的条件和输出.团队的长期目标是非常规的,团队可以自行制定决策.虚拟项目团队和传统项目团队具有许多相似之处.这些相似点包括一般结构.团队管理方法以及都是为了完成团队目标而选择的工作类型. 优势 1.人才优势.现代通信与信息技术的使用大大缩短了

IDEA中MAVEN项目有多个子目录,如何加载构建

ddts这个项目有三个子目录,每个子目录下面也都有一个 pom.xml 此时需要 右键子目录的 pom.xml,选择Add as Maven Project,在上图中cli.core两个目录已经构建了maven,data目录还没有构建maven. 当所有的的maven项目都构建好以后,Maven Projects 目录里就会有4个如下,否则就只有ddts这一个主目录 添加成maven项目有生么用呢? 比如在cli目录下有一个java文件 public class DDTSCliApplicati

Maven 学习(二)使用eclipse构建Maven项目及发布一个Maven项目

开发环境: Eclipse Jee Mars(截止2015年12月1日目前的最新版eclipse4.5),下载地址:http://www.eclipse.org/downloads/ 因为此版本已经集成了M2E的插件,再者Mars版本的eclipse也比较稳定,可以省一些不必要的麻烦. 一.构建Maven项目 用eclipse构建maven项目之前我们需要为eclipse做一些必要的配置 一些必要的配置 1.点击eclipse菜单栏的Window下的preferences,选择Maven菜单 2

使用MyEclipse构建MAVEN项目 - 我的漫漫程序之旅 - BlogJava

body { font-family: Microsoft YaHei UI,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5; } html, body { } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bo

jenkins构建maven项目

1.构建maven项目 2.构建项目配置 3.具体配置 构建触发器 可以添加日期时间,规定什么时候构建,为空需要手动构建执行 Build 配置maven相关文件 构建后操作 测试报告的输出 简单配置,手动构建后,就可以看到结果了 原文地址:https://www.cnblogs.com/cty136/p/11535931.html

(Windows Maven项目)Redis数据库的安装和操作实现

Redis是一个内存数据库,他会把你写入当中的数据缓存到内存中,之后会周期性的往磁盘中写入.这篇文章中介绍的是在Windows环境下利用Maven工具编译运行Java文件实现Redis数据库的操作.         首先.我们须要下载Redis工具:http://redis.io/download,之后解压就能够了.我们会看到解压的文件夹下存在着这样一些文件: 当中,两个可运行文件须要考虑,redis-server.exe/redis-cli.exe.它们各自是redis服务和redisclie

Maven for Eclipse 第三章 ——创建和导入 Maven 项目

这一章主要介绍 Maven 项目的结构,它的构建的架构,主要涵盖了必需的主题,最后将学习如何创建一个简单的 Maven 项目.这章主要包括以下部分. Maven 项目的结构 POM 文件(Project Object Model) Maven 的坐标 POM 的关系 基本的 POM 顶层的 POM 3. Maven 项目的构建架构 4. 其他的重要的概念 仓库 项目依赖 插件和任务 网站的生成和报表 5. 创建一个 Maven 项目 使用原型创建 不使用原型创建 检索出一个 Maven 项目 6

(Windows Maven项目)Jedis数据库的安装和操作实现

Redis是一个内存数据库,他会把你写入其中的数据缓存到内存中,之后会周期性的往磁盘中写入,这篇文章中介绍的是在Windows环境下利用Maven工具编译运行Java文件实现Redis数据库的操作.         首先,我们需要下载Redis工具:http://redis.io/download,之后解压就可以了,我们会看到解压的目录下存在着这样一些文件:            其中,两个可执行文件需要考虑,redis-server.exe/redis-cli.exe,它们分别是redis服务

maven——项目构建和依赖管理工具

apache maven是一个用于项目构建和依赖管理的工具. 添加archetype https://repo1.maven.org/maven2/archetype-catalog.xml 更改本地仓库存储位置:修改配置文件${user.home}/.m2/settings.xml或 $MAVEN_HOME/conf/setting.xml中的内容 <localRepository>... mvn archetype:generate会非常慢,搜索了本地和远程太多archetype,而加上-