前言
我做的银行 it 综合管理平台项目使用的 Maven 作为项目管理工具,Maven 工具可以对 Java 项目进行构建和依赖管理。
下面简单总结下我对 Maven 的使用。
安装
下载地址是 https://maven.apache.org/download.cgi 目前最新的是 Maven 3.6.1版本。
下载成功后解压缩,解压后目录如下:
配置
配置本地 Maven 仓库
创建一个目录作为本地库,用于存放 Maven 从远程中心库下载好的 jar 包
如:D:/Program Files/Maven/Repository
修改 setting.xml
配置文件,找到安装目录中 /conf/settings.xml 文件并修改,
找到 <localRepository>
标签配置本地库地址:
<localRepository>D:/Program Files/Maven/Repository</localRepository>
配置网络代理
如果公司使用内网,需要代理才能上外网,可以在 /conf/settings.xml 中配置网络代理
<proxies>
<!-- proxy
| Specification for one proxy, to be used in connecting to the network.
|
-->
<proxy>
<id>my-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>172.10.10.35</host>
<port>8080</port>
</proxy>
</proxies>
配置中心仓库镜像地址
国内网络有时连接 Maven 中心库很慢,就需要借助阿里云的 Maven 中心库镜像地址。
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>[http://maven.aliyun.com/nexus/content/groups/public](http://maven.aliyun.com/nexus/content/groups/public)</url>
</mirror>
</mirrors>
配置好 settings.xml
后,还需要在我们常用的 IDE 中配置 Maven。
IDE 中配置 Maven
Eclipse 配置 Maven
打开 Eclipse 的偏好设置 /Window/Preferences,找到 Maven - User Settings 配置项。
User Settings 配置项中设置 Maven 的 User Settings 为 D:\Program Files\apache-maven-3.6.0\conf\settings.xml
Local Respository 设置为本地库地址,D:/Program Files/Maven/Repository。
点击 Apply and Close 应用配置。
IDEA 配置 Maven
File - Settings 打开 IDEA 的设置,找到 Maven 配置项,分别设置 User settings file 和 Local repository 配置项,并勾选 Override。
IDEA 配置点击 Apply 应用配置。
配置好后,在 pom 文件中添加依赖后保存,IDE 会自动下载依赖的 jar 包。
如果显示依赖下载完成,pom 文件还是报错很可能是某些包没下载完整,删掉已下载的 jar 包所在文件夹,重新尝试下载。
常用命令
-D
指定参数。
-P
指定 Profile 配置,加载指定的应用配置文件,如 mvn package –Pdev
,使用 Maven 打包项目,指定 dev 的 Profile 配置,项目会加载 resources 目录下的 application-dev.properties
项目配置文件,项目默认加载的是 application.properties
。
mvn package -Dmaven.test.skip=true
编译打包项目,并跳过单元测试。
mvn clean
清理项目。
mvn test
运行单元测试。
mvn compile
编译项目。
使用 Maven 构建多模块项目
大型项目中,合理的模块拆分,便于代码的复用,维护和管理,所以我们大多使用 Maven 构建多模块项目。
以 Eclipse 为例建一个 Maven 项目。
选择 Maven Project 建一个父工程。
建每个子模块的时候选择 Maven Module。
新建模块Parent Project 处选择之前建立的父工程,Finish 之后,新建的子模块就在这个父工程下了。
完成后的目录结构如下:
目录结构
父工程的 POM 文件,主要维护依赖的版本信息,如:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.bots.push</groupId>
<artifactId>domain</artifactId>
<version>${app-svr-version}</version>
</dependency>
</dependencies>
</dependencyManagement>
这样,子模块添加对应的依赖就不用写每个依赖的 <version>
版本号。
后记
每个技术栈都有对应自己的项目管理工具,Java 有 Maven,Gradle,iOS 有 CocosPod,前端有 Webpack,了解对应技术栈的项目管理工具,可以让开发事半功倍。以上只是 Maven 使用的一小部分内容,仅供参考。
网友评论