# 清理 mvn clean # 编译主程序 mvn compile # 编译测试程序 mvn test-compile # 执行测试 mvn test # 打包 mvn package # 安装 mvn install # 生成站点 mvn site
在Maven中,由groupid、artifactid、version来唯一确定一个Maven工程。
仓库分类
Maven解析依赖信息时会到本地仓库中查找被依赖的jar包。对于我们自己开发的Maven工程,使用mvn install
命令安装后就可以进入仓库。
依赖的范围
依赖的范围 | 对主程序是否有效 | 对测试程序是否有效 | 是否参与打包 | 是否参与部署 |
---|---|---|---|---|
compile | 有效 | 有效 | 参与 | 参与 |
test | 无效 | 有效 | 不参与 | 不参与 |
provided | 有效 | 有效 | 不参与 | 不参与 |
compile和provided比较:compile在开发、部署、运行阶段都提供依赖,provided只在开发阶段提供依赖。
依赖具有传递性。非compile范围的依赖不能传递。
依赖排除:使用exclusions排除不需要的jar包。
依赖原则(解决工程之间的jar包冲突)
统一管理jar包的版本
${自定义标签名}
引用声明的版本号继承
聚合
modules
标签配置即可Maven生命周期定义了各个构建环节的执行顺序。
Maven有三套相互独立的生命周期
插件和目标
pom.xml文件
<!-- 配置构建过程中的特殊设置 --> <build> <finalName>web</finalName> <plugins> <plugin> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven2-plugin</artifactId> <version>1.2.3</version> <configuration> <!-- 当前系统中容器的位置 --> <container> <cotainerId></cotainerId> </container> <!-- 端口号 --> <properties> <cargo.servlet.port>8001</cargo.servlet.port> </properties> </configuration> <!-- 插件在什么情况下执行 --> <executions> <execution> <id>cargo-run</id> <phase>install</phase> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
命令mvn deploy
https://mvnrepository.com/