maven 简洁整理
依赖包的 scope
1 | mvn compile / clean /package/ install/ test |
使用 mvn 命令原型创建普通 java 项目
mvn archetype:generate -DgroupId=com.ghc.generalApp -DartifactId=algorithm -DarchetypeArtifactId=maven-archetype-quickstart
使用 mvn 命令原型创建 web 项目
mvn archetype:generate -DgroupId=com.ghc.webapp -DartifactId=microservice -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
总结
- springboot initializer作为父项目 gav 坐标, name, url, description 等写一写 packaging 方式改为 pom
- 并干掉不相关的文件目录(.mvn目录、src目录、mvnw及mvnw.cmd文件,最终只留.gitignore和pom.xml)
- 在父项目中 仅做依赖申明 dependencyManagement, 具体引用由子项目自己去规定
- 记得将版本号以及编码类型等在 properties 中描述 如(druid.version)
- 如果父项目 pom 中没有 modules, 则需要添加
- 将大家都用到的依赖放于 common 模块
xxx 中 - 其他子模块中独有的 依赖 写在自己的 pom 文件中
- -DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。
-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。 - application.yml 可以 读取 pom 文件中的 配置, 如 profile , jdbcurl等
9.问题:
Maven中optional和scope元素的使用
optional 为 true 则 不传递 依赖, scope 是指传递依赖的范围
1 | 依赖传递 |