Maven理解

笔记原本记录在有道或者印象笔记上,为了方便,现将部分笔记摘抄至随笔,以供日后参考。

有些自己总结的部分内容可能不太正确,希望明白的可以为我指出,谢谢!

 

goal理解

install:将项目打包并放入用户的maven本地仓库(在setting中设置)文件夹中,install中包含了package

clean:清除上次操作产生的文件 package:打包,放入target目录下

compile:编译,下载jar包,生成class等

在打包或编译前最好clean一下。

 

 

对于常用的properties可以在开始时定义在properties标签内,通过${name}取用

 

对于setting.xml的理解:

对于多用户的pc而言,maven安装目录下的setting.xml是真正的全局配置文件,而每个用户的.m2目录下的setting.xml只是针对当前用户。

两个同时存在时以每个用户单独的setting.xml为准。

 

setting.xml文件中的标签理解:

localRepository:用于指定本地库的地址

MirrorOf:该镜像可以匹配哪些仓库,不配置的时候默认为central中央库

 

 

 

MyEclipse中两个src文件夹的理解:

本地文件实际存放的是资源文件夹,下部的src创建的文件(包括main和test)实质上都是创建在上部的main资源文件夹内?。

一个是专门用于作为类的目录:资源文件夹

另一个是作为web资源的根目录:普通文件夹,摆设(希望有人为我解答一下)

 

设置项目facts,更改根路径为src下的webapp并且将webapp设置为资源文件夹,否则打包时无法将jsp等文件打包进去。

 

pox.xml中的重要标签:

<build>:包括了编译期间的设置。其中的sources及其子标签source是为了方便用户自己定义额外的资源文件目录。source的includes和excludes分别表示过滤条件(包含和不包含),filtering表示是否开启占位符替换

 

<profile>:根据不同的配置打包,可以在打包时显式指定,profile可以包括大部分pom中存在的元素并进行覆盖。通过<activation>可以设置基本的触发条件(jdk,os等)

    通过设置properties替换文件中的值,需要在build中开启filtering启动占位符替换功能。在springboot中的占位标志为@name@,单独的maven占位标志为${name}

 

Maven的聚合

父子拥有继承关系时,父项目打包方式必须声明为pom。一般来说父项目只需要一个空壳,保留pom.xml即可。所有公用的配置项均可以在父项目的pom.xml中集中配置,会自动继承到模块项目中去。

 

需要直接强制继承的依赖和插件可以直接在parent的pom中声明为<dependencies>  、<plugins>等。此时声明的部分在子项目中一定会存在。

不需要强制继承,只需要在子项目使用时管理插件和依赖版本等功能时,可以在标签外部使用<dependencyManagement>、<pluginManagement>。(软性声明)

 

项目间互相依赖,在打包时会引用其他模块或项目的资源:同引入jar包依赖一样,引入其他项目(可能存在其他项目未打包的情况,需要先打包)。type标签用于表明此依赖的类型。

posted @ 2018-09-02 22:09  快乐肥宅  阅读(113)  评论(0编辑  收藏  举报