重编maven-二
来源:互联网 发布:爱奇艺淘宝vip骗局 编辑:程序博客网 时间:2024/06/02 12:30
maven生命周期:
maven的生命周期分为三个部分:
1.clean
pre-clean:执行需要在clean之前完成的工作,即准备clean阶段;
clean:移除所有上次构建生成的文件;
post-clean:执行在clean之后立即需要完成的工作。
2.compile
validate:顾名思义,校验;
generate-sources:生成源文件;
process-sources:复制并处理资源文件到目标目录,准备打包;
generate-sources:生成源文件;
process-sources:复制并处理资源文件到目标目录,准备打包;
compile:编译源代码;(如果执行mvn compile:编译命令,则此生命周期到这儿为止);
process-class;
generate-test-sources:生成源文件;
process-test-sources:复制并处理资源文件到目标测试目录,准备打包;
generate-test-sources:生成源文件;
process-test-sources:复制并处理资源文件到目标测试目录,准备打包;
test-compile:编译测试源代码;(如果执行mvn test:命令,则此生命周期到这儿为止);
process-test-class;
test:使用单元测试框架进行测试,测试代码不会被打包或部署;
prepare-package;
package:接收编译好的代码,打包成jar或war格式;(如果执行mvn package:命令,则此生命周期到这儿为止);
pre-integration-test;
integration-test;
post-integration-test;
verify;
install:将包安装到本地仓库让其它项目依赖;(如果执行mvn install:命令,则此生命周期到这儿为止);
deploy:将包发布到远程仓库,让其它开发人员使用。
3.site
pre-site:完成在生成站点文件之前的工作;
site:生成项目站点文档;
post-site:完成在生成站点文件之后的工作,并为部署做准备。
maven插件:
maven在执行每个生命周期的时候,都会运行相关的插件。
这里在compile的时候,使用了maven-compiler-plugin。
<build> <plugins><!—— 插件的引入 —-> <plugin><!—- 具体某个插件的引入 —-> <groupId> org.apache.maven.plugin </groupId> <artifactId> maven-source-plugin </artifactId> <executions><!—- 绑定到某个生命周期中 ——><execution> <phase><!—— 指定绑定生命周期 ——> compile </phase><goals><!—— 执行的目标 ——> <!—— 将jar文件打包 ——> <goal>jar</goal></goals></execution> </executions> </plugin> </plugins><build>
插件主要是用于辅助完成生命周期,亦或指定在某个生命周期完成特定的工作,插件中也可以依赖,但在插件中的依赖只限于当前插件中使用。
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.0</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin>
以上插件用于设定java版本,不过现在设置java版本也可以通过:
<properties><java.version>1.8</java.version></properties>
<properties>标签来指定。
maven插件现用先查,通过apache官网查询。
maven仓库:
maven的仓库分为三类:本地仓库、私有仓库和中央仓库,如果所有的jar下载都走中央仓库会使访问过大并且中央仓库速度慢。所以一般情况下都会配置一个私有仓库。
配置仓库一般有两种方式:
一、在maven项目中的pom.xml中配置:
<repositories><repository><id>nexus</id><name>Central Repository</name><url>http://127.0.0.1:8081/nexus/content/groups/public/</url></repository></repositories>
以上代码配置一个私有仓库,这样就会让所有依赖的jar到上的url上去下载。
二、在maven安装目录下的settings.xml文件中配置:
<mirrors> <mirror> <id>nexus</id> <name>Central Repository</name> <url>http://127.0.0.1:8081/nexus/content/groups/public/ </url> <mirrorOf>*</mirrorOf> </mirror> </mirrors>
以上配置了一个镜像, <mirrorOf>*</mirrorOf>中的*表示所有的jar下载都走镜像中的url,不会去中央仓库中找。
在settings中可以配置多个仓库,然后指定启动某个仓库地址:
<profiles><profile><id>dev</id><repositories><repository><id>nexus</id><name>dev-nexus</name><url>>http://127.0.0.1:8081/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><!——snaphots默认是关闭的,需要手动开启——><snapshots><enabled>true</enabled></snaphots></repository></repositories></profile></profiles><!——某个仓库为激活状态——><activeProfiles><!——只有激活之后才生效——><activeProfile>dev</activeProfile></activeProfiles>
发布到nexus:
首先需要在pom.xml中配置:
<distributionManagement><repository><id>releases</id><url>http://127.0.0.1:8081/nexus/content/repositories/releases</url></repository><snapshotRepository><id>snapshots</id><url>http://127.0.0.1:8081/nexus/content/repositories/snapshots</url></snapshotRepository></distributionManagement>
以上代码分别表示release版和snapshots版发布到指定的nexus url。
同时发布到nexus中需要权限,即需要在settings.xml文件中配置发布的用户名和密码如:
<servers> <server> <id>deploymentRepo</id> <username>repouser</username> <password>repopwd</password> </server> </servers>
- 重编maven-二
- 重编maven-一
- linux重编内核
- css属性编(二)
- CSS实例编(二)
- Linux核心重编与升级
- Ubuntu13.04 内核重编与定制
- CSS精采实例编(二)
- 不拘一格编程序之二
- Maven实战(二)——POM重构之增还是删
- Maven实战(二)——POM重构之增还是删
- Maven实战(二)——POM重构之增还是删
- Maven实战(二)POM重构之增还是删
- Maven实战(二)——POM重构之增还是删
- 学习笔记——Maven实战(二)POM重构之增还是删
- Maven二
- Maven 二
- maven(二)
- C++ STL std::copy 详解
- CentOS7安装nginx
- 分区加密
- python基础2-笔记
- 310. Minimum Height Trees 【Medium】 树
- 重编maven-二
- 一直程序员的养成日记 第一章 第三节 错中求对
- 操作系统互斥进程问题
- [Redis学习笔记]-Redis 数据备份与恢复
- 以前我劝你们努力,今天我劝你们放弃
- 机器学习 学习笔记
- Material Design控件之AppBarLayout
- C#取硬盘、CPU、主板、网卡的序号 ManagementObjectSearcher
- leetcode: 22. Generate Parentheses