maven 学习笔记

mvn compile
  • 测试
mvn test
  • 打包
mvn package
  • 删除target文件夹
mvn clean
  • 安装jar包到本地仓库中
mvn install
  • 自动建立项目骨架
mvn archetype:generate [-DgroupId=xxxx(组织名,公司网址的反写+项目名),-DartifactId=xxxxx(项目名-模块名),-Dversion=xxxxx(版本号),-Dpackage=xxxx(项目所在的包)]
  • 小结
clean 清理项目
      pre-clean 执行清理前的工作
      clean 清理上一次构件生成的所有文件
      post-clean 执行清理后的工作
default构建项目
site 生成项目站点
      pre-site 在生成项目站点前要完成的工作
      size 生成项目的站点文档
      post-site 生成站点后要完成的工作
      site-deploy 发布生成的站点到服务器上
maven生命周期 clean,compile(编译),test(测试),package(打包,打包时依次执行编译和测试),install
  • 依赖冲突原则
依赖冲突原则:
1.短路优先:C依赖B,B依赖A,A和B都包含同一个不同版本的Jar,则取B的依赖版本
2.声明优先:C依赖A和B,A和B都包含同一个不同版本的Jar,谁先声明取谁的依赖版本
  • pom 详解
<?xml version="1.0" encoding="UTF-8"?>
<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>指定当前pom的版本</modelVersion>

    <groupId>反写的公司网址+项目名</groupId>
    <artifactId>项目名-模块名</artifactId>
    <version>大版本号.分支版本号.小版本号-
        SNAPSHOT(快照)
        ALPHA(内测)
        BETA(Beta公测)
        RELEASE(稳定)
        GA(正式发布)
    </version>
    <packaging>打包方式</packaging>

    <name>项目名称</name>
    <url>项目地址</url>
    <description>项目描述</description>
    <developers>开发人员列表</developers>
    <licenses>许可证</licenses>
    <organization>组织信息</organization>

    <parent>
        <!--父pom的坐标,这样子pom中的dependencies就可以不用写依赖了-->
        <groupId></groupId>
        <artifactId></artifactId>
        <version></version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <modules>
        <!--模块列表(聚合使用)-->
        <module>其他的模块</module>
    </modules>

    <properties>
        <统一配置信息>版本/编码</统一配置信息>
    </properties>

    <dependencies>
        <!--依赖列表-->
        <dependency>
            <groupId>反写的公司网址+项目名</groupId>
            <artifactId>项目名-模块名</artifactId>
            <version>版本</version>
            <type>类型</type>
            <scope>依赖范围
                compile:默认的范围,编译测试运行都有效
                provided:在编译和测试时有效 例如servlet-api
                runtime:测试和运行时有效 例如jdbc
                test:测试时有效 例如junit
                system:与本机系统相关联
                import:导入的范围,他只使用在dependencyManagement中,
                        表示从其他的pom中导入dependency的配置
            </scope>
            <!--设置依赖是否可选-->
            <optional>默认false(继承),ture(必须显式引入)</optional>
            <exclusions>
                <!--排除依赖传递列表-->
                <exclusion>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <!--依赖管理-->
    <dependencyManagement>
        <dependencies>
            <dependency>不会被加载,拱子模块继承</dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <finalName>打包名称</finalName>
        <!--插件列表-->
        <plugins>
            <plugin>
                <groupId>反写的公司网址+项目名</groupId>
                <artifactId>项目名-模块名</artifactId>
                <version>版本</version>
            </plugin>
        </plugins>
    </build>


</project>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

PXC 5.7 mysqldump: Error 2013

最近在mysqldump时,遭遇mysqldump: Error 2013错误。以为是常见的参数设置有问题,调整之后,也没有任何成效。原来发生了OOM,以下是其...

11700
来自专栏Android干货

Android项目实战(三十九):Android集成Unity3D项目(图文详解)

22560
来自专栏无题

分布式Session一致性解决方案

在分布式架构或微服务架构下,必须保证一个应用服务器上保存Session后,其它应用服务器可以同步或共享这个Session Web应用在单机部署的情况下,Ses...

45160
来自专栏IMWeb前端团队

前端需要知道的 依赖注入(Dependency Injection, DI)

前端需要知道的 依赖注入(Dependency Injection, DI) 1. 前言 XX库实现了依赖注入,哇塞,好牛X呀~~~ 切,依赖注入的实现那么简单...

31750
来自专栏GAN&CV

Ubuntu16.04安装opencv2&&ImportError: No module named cv2.cv

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25737169/article/d...

59930
来自专栏Python

linux目录结构详细介绍

31930
来自专栏开源优测

渗透测试 - kali Linux

渗透测试操作系统 - kali 什么是kali Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统。 由Offensive S...

56140
来自专栏流柯技术学院

LR常见问题整理

  当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。

56440
来自专栏云计算教程系列

如何将Ubuntu从16.04升级到18.04

Ubuntu 18.04是一个长期支持(LTS)版本,LTS 版本每两年发布一次,而 Ubuntu 18.04 是自 2016 年以来的第一个长期支持版本。Ub...

3.5K40
来自专栏IMWeb前端团队

webpack原理与实战

本文作者:IMWeb 吴浩麟 原文出处:IMWeb社区 未经同意,禁止转载 image.png webpack是一个js打包工具,不一个完整的前端...

42390

扫码关注云+社区

领取腾讯云代金券