前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >maven 学习笔记

maven 学习笔记

作者头像
Meet相识
发布2018-09-12 16:10:07
4720
发布2018-09-12 16:10:07
举报
文章被收录于专栏:技术专栏技术专栏技术专栏
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>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.08.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档