Maven项目管理随记

本篇文章仅为Maven学习随记


一:
maven介绍与环境搭建:
maven是基于项目对象模型(POM),可以通过一小段描述信息来管理
项目的构建、报告和文档的软件项目管理工具。

下载好后:
①:bin目录下面包含mvn的运行脚本
②:boot目录包含了一个类加载器的框架
③:conf是配置文件的目录
④:lib是maven运行时所需要的类库,除了自身的还包含了maven运行时所依赖的第三方的类库。

二:
maven目录结构:
src
-main
-java
-package
-test
-java
-package
resources

maven中的pom.xml标签含义:
①:groupId的值就是项目的包名
②:artifactId的值就是模块名

三:
3.1:
maven常用命令:
mvn -v :查看maven版本
compile:编译
test:测试
package:打包

clean 删除target
install:安装jar包到本地仓库中。

3.2:
自动创建目录骨架:
archetype插件:用于创建符合maven规定的目录骨架
如:css样式文件 images图片
maven规定:
-src
-main
-java
-主代码
-src
-test
-测试代码

创建目录的两种方式
1:archetype:generate 按照提示进行选择
2:archetype:generate -DgroupId=组织名,公司网址的反写+项目名
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=项目所在的包

3.3:maven中的坐标和仓库:
坐标
构件
坐标:在maven世界中,任何一个依赖、插件、项目构件的输出都可以被称之为构件。
构件通过坐标作为唯一的标识。
如(地址、电话)

比如:

<dependency>
    <groupId>com.imooc.maven01groupId>
    <artifactId>maven01-modelartifactId>
    <version>0.0.1SNAPSHOTversion>
dependency>

就是一个坐标

建议:在创建maven项目时,java的包名应该与pom.xml中定义的groupId、artifactId相吻合
这样看起来更加清晰,符合逻辑,并且方便搜索。

仓库
本地仓库和远程仓库(中央全球仓库)
中央仓库地址:http://search.maven.org/
镜像仓库
更改仓库位置

3.4 在eclipse中安装maven插件以及创建maven项目

3.5 maven的生命周期和插件
命令:clean、compile、test、package、install
完整的项目构建过程包括:
清理、编译、测试、打包、集成测试、验证、部署。

maven生命周期:
clean 清理项目
pre-clean 执行清理前的工作
clean 清理上一次构建生成的所有文件
post-clean 执行清理后的文件

default 构建项目(最核心)
compile、test、package、install

site 生成项目站点
pre-site 在生成项目站点前要完成的工作
site 生成项目的站点文档
post-site 在生成项目站点后要完成的工作
site-deploy 发布生成的站点到服务器上。

3.6: 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.0modelVersion>

    <groupId>反写的公司网址+项目名groupId>
    <artifactId>项目名+模块名artifactId>
    
    <version>version>
    
    <packaging>packaging>
    
    <name>name>
    
    <url>url>
    
    <description>description>
    
    <developers>developers>
    
    <licenses>licenses>
    
    <organization>organization>

    <dependencies>
        <dependency>
            <groupId>groupId>
            <artifactId>artifactId>
            <version>version>
            <type>type>
            
            <scope>testscope>
            
            <optional>optional>
            
            <exclusions>
                <exclusion>
                exclusion>
            exclusions>
        dependency>
    dependencies>
    
    <dependencyManagement>
        <dependencies>
            <dependency>dependency>
        dependencies>
    dependencyManagement>
    <build>
        
        <plugins>
            <plugin>
                <groupId>groupId>
                <artifactId>artifactId>
                <version>version>

            plugin>
        plugins>
    build>
    
    <parent>parent>
    
    <modules>
        <module> module>
    modules>
project>

3.7 maven依赖范围
maven中三种classpath:
1:编译 2:测试 3:运行

例如:

<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>3.8.1version>
<scope>testscope>

表示junit用在测试的项目中,存在于测试的范围

依赖范围用来控制依赖与三种classpath的关系的。

Dependency Scope:
1:compile:默认范围,编译测试运行都有效
2:provided:在编译和测试时有效,在最后运行时无效。
3:Runtime:在测试和运行时有效。
4:test:只在测试范围有效。
5:system:与本机系统相关联,可移植性差。
6:import:导入的范围,它只使用在dependencyManagement中,表示从其他的pom中导入dependency的配置。

3.8:maven的依赖传递
见项目:hongxing-bge hongxing-nage hongxing-shanji

3.9:maven的依赖冲突
1:短路优先
A->B->C->X(jar)
A->D->X(jar)

2:先声明先优先
如果路径长度相同,则谁先声明,先解析谁

3.10:maven的聚合和继承

4.1 使用maven构建web项目

5.1 课程总结
1:maven下载和环境搭建:如何在windows下安装maven
2:maven目录骨架的说明:
①:主代码存放路径:
-src
-main
-java
主代码
②:测试代码存放路径:
-src
-test
测试代码
pom.xml用于管理项目依赖和构建过程

3:常用的maven命令
4:仓库和坐标
5:在eclipse安装和创建maven项目
6:生命周期、pom.xml以及依赖、聚合、继承
7:eclipse中创建web项目和jetty插件的安装。


致自己:仅仅了解maven相关知识概念,之后还需通过实践熟练maven的使用。

你可能感兴趣的:(工具使用,maven工具随记)