项目管理利器——maven

1、maven项目的目录结构

src 
    -main
        -java
            -package
    -test
        -java
            -package
    resources

2、maven相关命令

    mvn -v 查看maven版本
        compile 编译
        test 测试
        package 打包
        
        clean 删除target
        install 安装jar包到本地仓库中

3、mvn install

    但一个项目需要使用另一个项目中的类时,我们需要再另外一个项目下执行mvn install 命令
然后在本项目中的pom.xml文件中添加另一个项目的依赖m,并对在需要引入类的地方导入该类。

4、自动创建目录骨架的两种方式
    
    (1) 使用 mvn archetype:generate 按照提示进行选择
    choose a number: 6:6
    Define value for property 'groupId': com.imooc.maven03
    Define value for property 'artifactId': maven03-service
    Define value for property 'version' 1.0-SNAPSHOT: : 1.0.0SNAPSHOT
    Define value for property 'package' com.imooc.maven03: : com.imooc.maven03.service
    Y: :y
    (2) 使用 mvn archetype:generate -DgroupId=com.imooc.maven04 -DartifactId=maven04-demo -Dversion=1.0.0SNAPSHOT -Dpackage=com.imooc.maven04.demo
        一次性设置所有的属性
        -DgroupId=组织名,公司网址的反写+项目名
        -DartifactId=项目名-模块名
        -Dversion=版本号
        -Dpackage=代码所存在的包名
    
5、坐标与构建

    坐标
        构建
        <dependency>
            <groupId>com.imooc.maven01</groupId>
            <artifactId>maven01-model</artifactId>
            <version>0.0.1SNAPSHOT</version>
        </dependency>
        
    仓库
        本地仓库和远程仓库
        
        
    镜像仓库
        更改镜像仓库 在  settings.xml 文件中
        <mirror>
          <id>mirrorId</id>
          <mirrorOf>repositoryId</mirrorOf>
          <name>Human Readable Name for this Mirror.</name>
          <url>http://my.repository.com/repo/path</url>
        </mirror>
    
    更改仓库的位置(在settings.xml)
    <localRepository> 你想存放的位置 </localRepository>

6、在Eclipse安装maven插件以及创建maven项目
        
    配置JDK
    配置JRE为JDK中的JRE
    配置settings.xml到Eclipse中
    
    创建maven项目

7、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    发布生成的站点到服务器上
    
8、pom.xml常用元素截介绍
    <!-- 指定当前pom的版本 -->
    <modelVersion>4.0.0</modelVersion>

    <!-- 坐标信息 -->
    <groupId>com.imooc.hi</groupId>        <!-- 总项目标识  反写公司网址+项目名 -->
    <artifactId>hi</artifactId>            <!-- 模块的标识,实际项目的一个模块  项目名+模块名  -->
    <version>0.0.1-SNAPSHOT</version>    <!-- 第一个0表示大版本号,第二个0表示分支版本号,第三个0表示小版本号, 0.0.1snapshot 快照  ,alpha 内部测试 , beta 公测 , Release 稳定 , GA正式发布   -->
    <packaging>jar</packaging>            <!-- 打包方式, 默认是jar ,还有 war zip pom-->
    <name>hi</name>                        <!-- 项目描述名 -->
    <url>http://maven.apache.org</url>    <!-- 项目地址 -->
    <description></description>            <!-- 项目描述 -->
    <developers></developers>            <!-- 开发人员的列表  -->
    <licenses></licenses>                <!-- 许可证  -->
    <organization></organization>        <!-- 组织信息   -->
    
    <!--  依赖列表    -->
    <dependencies>
        <dependency>
            <groupId></groupId>
            <artifactId></artifactId>
            <version></version>
            <type></type>
            <scope>test</scope>                <!-- 依赖范围   -->
            <optional></optional>            <!-- 设置依赖是否可选 , true 和 false   -->
            <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>

    
9、依赖管理
    <!--  依赖列表    -->
    <dependencies>
        <dependency>
            <groupId></groupId>
            <artifactId></artifactId>
            <version></version>
            <type></type>
            
            <scope>test</scope>                <!-- 依赖范围   -->
            
            <optional></optional>            <!-- 设置依赖是否可选 , true 和 false   -->
            <exclusions>                    <!-- 排除依赖传递列表   -->
                <exclusion>
                </exclusion>
            </exclusions>                    
        </dependency>
    </dependencies>        
    
    <!--  重点说下scope  -->
    scope的属性有: compile        默认范围,编译测试运行都有效
                    provided     在编译和测试时有效
                    runtime     在测试和运行时有效
                    test         只在测试时有效
                    system         与本机系统相关联,可移植性差
                    import         导入的范围,它只使用在dependencyManagement中,表示从其它的pom中导入dependecy的配置

10、依赖传递

    project1   依赖   project2   依赖   project3
              ----->             ----->
    
    1、首先在project2 ,增加依赖project3的坐标
    2、编译project2,会发现出错,因为在仓库中找不到project3,因此需要将project3安装到本地仓库中,在project3中运行 package
    3、鉴于project3,我们应该先将project2安装到本地仓库
    4、在project1中增加依赖project2,编译project1.
    5、此时我们可以看到,project1依赖了project2同时还依赖了project3,这就是依赖传递
    6、如果要排除project1对project3的依赖,可以在填写依赖project2处填写
        <exclusions>    <!--  排除依赖  -->
            <exclusion>
                <!-- 填写project3的坐标   -->
            </exclusion>
        </exclusions>
        此时可以发现project1不在依赖project3
    
11、显示的的jdk版本与实际版本不一样,可以在settings.xml文件中添加如下代码(找到profile)
    <profile>
        <id>jdk-1.8</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <jdk>1.8</jdk>
        </activation>
        
        <properties>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
        </properties>
    </profile>
    
12、依赖冲突
    原则:
        1、短路优先 
            A->B->C->X(jar)
            A->D->X(jar) 优先选择这个
        2、先声明先优先
    
13、maven的聚合和继承
    
    一、聚合
        现有project1 project2 project3 三个maven项目
        1、首先创建一个项目 project
        2、在project中的pom.xml文件中添加如下代码:
            <modules>
                <module>../project1</module>
                <module>../project2</module>
                <module>../project3</module>
            </modules>
            
            并修改<packaging>jar</packaging>为<packaging>pom</packaging>
    
    二、继承
        (略)
        
    
14、使用maven构建web项目
    详细创建过程 点击这里 https://www.imooc.com/video/8684
    
15、总结
    
    
    
    
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值