MAVEN学习使用总结

Wesley13
• 阅读 584

maven下载和环境搭建

  • 首先安装和配置JDK相关的环境变量
  • 下载maven
    下载地址:http://maven.apache.org/
    下载之后解压到当前文件
    MAVEN学习使用总结
  • 配置maven环境变量
    右键我的电脑、打开相关环境变量的配置页面,如下图所示:
    MAVEN学习使用总结

maven目录说明

src
-main
–bin 脚本库
–java java源代码文件
–resources 资源库,会自动复制到classes目录里
–filters 资源过滤文件
–assembly 组件的描述配置(如何打包)
–config 配置文件
–webapp web应用的目录。WEB-INF、css、js等
-test
–java 单元测试java源代码文件
–resources 测试需要用的资源库
–filters 测试资源过滤库
-site Site(一些文档)
target
LICENSE.txt Project’s license
README.txt Project’s readme
工程根目录下就只有src和target两个目录
target是有存放项目构建后的文件和目录,jar包、war包、编译的class文件等。
target里的所有内容都是maven构建的时候生成的

常用命令说明

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

mvn archetype:generate -DgroupId=com.yiibai.web -DartifactId=ProjectName -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

MAVEN学习使用总结

生命周期

Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。
参考官网地址
http://maven.apache.org/ref/3.5.0/maven-core/lifecycles.html
1、clean生命周期:清理项目,包含三个phase。
1)pre-clean:执行清理前需要完成的工作
2)clean:清理上一次构建生成的文件
3)post-clean:执行清理后需要完成的工作
2、default生命周期:构建项目,重要的phase如下。
1)validate:验证工程是否正确,所有需要的资源是否可用。
2)compile:编译项目的源代码。
3)test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
4)Package:把已编译的代码打包成可发布的格式,比如jar。
5)integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
6)verify:运行所有检查,验证包是否有效且达到质量标准。
7)install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。
8)Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
3、site生命周期:建立和发布项目站点,phase如下
1)pre-site:生成项目站点之前需要完成的工作
2)site:生成项目站点文档
3)post-site:生成项目站点之后需要完成的工作
4)site-deploy:将项目站点发布到服务器

依赖

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${springframework.version}</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency>

groupId,必选,实际隶属项目 ,网址倒叙+项目名
artifactId,必选,其中的模块 ,模块名
version必选,版本号 ,0.0.1-SNAPSHOT
type可选,依赖类型,默认jar (jar、war、pom)
scope可选,默认compile
参考官网 http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
scope用来表示与classpath的关系,总共有五种 列表内容
compile:编译,测试,运行
test:测试 provided:编译,测试
runtime:运行
system:编译,测试,同provided,但必须指定systemPath,慎用

optional可选,标记依赖是否可选,默认false
exclusion可选,排除传递依赖性

<exclusion>  
            <groupId>****</groupId>  
            <artifactId>***</artifactId>  
</exclusion> 

传递路径长度取最短原则,传递路径长度相等时,采取最先申明原则

聚合、继承

  • 聚合:批量构建项目,packaging的类型为pom ,module的值是一个以当前POM为主目录的相对路径

  • 继承:定义公共的依赖包和相关包的版本,在子模块中直接引用

    可继承的元素

    groupId :项目组 ID ,项目坐标的核心元素;
    version :项目版本,项目坐标的核心元素;
    description :项目的描述信息;
    organization :项目的组织信息;
    inceptionYear :项目的创始年份;
    url :项目的 url 地址
    develoers :项目的开发者信息;
    contributors :项目的贡献者信息;
    distributionManagerment :项目的部署信息;
    issueManagement :缺陷跟踪系统信息;
    ciManagement :项目的持续继承信息;
    scm :项目的版本控制信息;
    mailingListserv :项目的邮件列表信息;
    properties :自定义的 Maven 属性;
    dependencies :项目的依赖配置;
    dependencyManagement :醒目的依赖管理配置;
    repositories :项目的仓库配置;
    build :包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等;
    reporting :包括项目的报告输出目录配置、报告插件配置等。

使用eclipse创建微服务的项目

创建父模块

MAVEN学习使用总结

创建聚合模块

MAVEN学习使用总结

子模块定义

MAVEN学习使用总结

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Appscan的下载安装
1、下载Appscan:http://download2.boulder.ibm.com...2AppScan\_Setup.exe(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fdownload2.boulder.ibm.com%2Fsar%2FCMA%2FRAA%2F00jq2
Stella981 Stella981
3年前
Maven环境的搭建
1.本地仓库和apachemavenbin.zip的下载与解压<1.apachemavenbin.zip下载网址http://maven.apache.org/download.cgi2.Maven环境变量配置<1.MAVEN\_HOME!(https://oscimg.oschina.net/oscnet/9d6f3b
Stella981 Stella981
3年前
Python 环境搭建
pythonbug集目录\toc\00python模块下载地址pyhton模块下载地址(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.lfd.uci.edu%2F%7Egohlke%2Fpythonlibs%2F)01pythonpip
Stella981 Stella981
3年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
3年前
Maven项目环境搭建(Maven + Spring + IBatis)步骤
准备步骤‍1\.安装Maven,下载解压即可。官网下载(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmaven.apache.org%2Fdownload.cgi)‍2\.修改maven\_home/conf/settings.xml中的<localReposito
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这