• 主页
  • 归档
  • 分类
  • 照片墙
所有文章 友情链接 关于我

  • 主页
  • 归档
  • 分类
  • 照片墙
  1. 1. 修改maven的配置
  2. 2. 创建符合maven项目目录结构的项目
  3. 3. maven的常用命令
  4. 4. maven的生命周期
  5. 5. 使用插件
    1. 5.1. 将插件绑定到maven的生命周期

Maven(3)-从入门到重新入门

2017-10-18 20:29:31
总字数 857
预计阅读时间 3 分钟

Maven是基于项目对象模型 ( POM ) , 可以通过描述信息来管理项目的构建 报告 和文档的软件项目管理工具

简而言之 , 使用maven可以帮助我们更高效地管理项目
它也是一套强大的构建工具 , 覆盖了编译 测试 运行 清理 打包部署各项构建周期

修改maven的配置

在maven根目录/conf/setting.xml当中 , 可以修改maven的配置
可以修改本地仓库所在位置 , 比如

1
2
3
<localRepository>
/Users/Sookie/Documents/maven_lib
</localRepository>

由于官方的远程仓库位于国外 , 在国内的访问速度比较捉急
所以也可以配置一个国内的镜像地址
比如在<mirrors>节点当中添加阿里云的maven镜像

1
2
3
4
5
6
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

创建符合maven项目目录结构的项目

这里需要用到archetype这个插件
执行

1
mvn archetype:generate

来构建一个新的maven项目
执行过程中需要指定archetype的版本 , 使用默认即可
然后输入该项目的groupId , artifactId 等内容

maven的常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#删除项目中的target目录
mvn clean

#项目编译
mvn compile

#运行所有测试用例
mvn test

#打包项目
mvn package

#安装jar包到本地仓库
mvn install

安装到本地仓库就意味着其他的项目可以引入这个jar包

maven的生命周期

上面提到的几个常用命令 , 其实就是maven的几个生命周期
clean compile test package install
后面的4个统称为default , 也叫项目构建的阶段

之所以称之为生命周期 , 是因为在执行后面的操作的时候 , 也会自动执行前面的操作
比如执行mvn package , 那么在进行打包之前 , 也会先进行compile和test ( 默认不会进行clean , 如果需要先清理 , 那么可以执行 mvn clean package )

使用插件

maven提供了可扩展的插件机制 , 除了官方提供的插件之外 , 还有很多第三方开发的插件

这里使用一个官方提供的source插件作为示例
使用这个插件可以把项目的源码进行打包

配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<outputDirectory>打包输出的绝对路径</outputDirectory>
<finalName>文件名</finalName>
<attach>false</attach>
</configuration>
</plugin>
</plugins>
</build>
...
</project>

说明 : 最终输出的文件名是文件名-source.jar
执行源码打包的命令

1
2
3
4
5
#打包项目源码包(main目录当中的所有内容)
mvn source:jar

#打包测试源码包(test目录当中的所有内容)
mvn source:test-jar
将插件绑定到maven的生命周期

在插件的配置当中加入对maven生命周期的绑定
比如说绑定到package生命周期
那么在执行到该生命周期的时候 , 就会对源码进行打包

1
2
3
4
5
6
7
8
9
10
11
12
<plugin>
...
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
...
</plugin>
  • maven
  • Java

扫一扫,分享到微信

Maven(4)-补充
实现bind方法 
© 2024 夏夜梦星辰
鲁ICP备19028444号
Power By Hexo
  • 所有文章
  • 友情链接
  • 关于我
{{searchItem.query}}
标签: 分类:
  • maven
  • 持续集成
  • JMS
  • 线程
  • JavaScript
  • ECMAScript6
  • 单元测试
  • Promise
  • Web Worker
  • 函数
  • prototype
  • 模块化
  • 正则表达式
  • 数据库
  • MongoDB
  • 索引
  • 集群
  • 全文检索
  • flutter
  • dart
  • git
  • 版本控制
  • linux
  • shell
  • docker
  • nginx
  • jenkins
  • opencv
  • vim
  • react
  • react native
  • 前端
  • css
  • HTML5
  • Hexo
  • sass
  • Three.js
  • TypeScript
  • Vue
  • 组件化
  • base64
  • webpack
  • nodejs
  • gulp
  • TensorFlow
  • 机器学习
  • 算法
  • 动态规划
  • 数据结构
  • Java
  • JavaScript
  • MongoDB
  • flutter
  • Git
  • linux
  • react
  • 前端杂烩
  • 男生女生
  • 算法
  • 十年饮冰,难凉热血
  • †少女癌†
  • 猫与向日葵
  • coderfun
  • JENKINS
  • API管理后台
愿你最终能接纳每一面每一种的自己
独自活着便是团圆