maven deploy 报错
1 背景
执行 mvn clean deploy -Dmaven.test.skip
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project spring-boot-bmc-api-starter: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter -> [Help 1]
不知道怎么回事,但是知道原因后,又是如此的简单。
2 过程
1、当然先 google 了, 也看到了一些 简单,有配置
2、查看 settings.xml, 心想 是不是 setting 文件 不对(刚入职的时候,搭项目的时候确实发现setting 文件有问题,难道还有问题?), 先找相关的同事吧 项目 deploy上去。并拿了他的 settting 文件做了比对, 发现并无 异常。
3、尝试到心累,看到 settting 文件中 配置了 多个
原来如此简单,但说不出原理。赶紧温习下!!
3、maven 的一些 温习
3.1 一些常用的命令
mvn -version
mvn depedency:tree 查看依赖情况, 解决 jar 冲突
3.2 查找路径:
~/.m2/settings.xml
config/settings.xml
3.3 一些常用的配置说明
profile: 打包 环境变量
mvn -P dev
<dependencyManagement>
</dependencyManagement>
1、 在父类中使用,
2、 统一版本号
3、 声明依赖
<dependency></dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
scope:
1) compile 编译。默认。 打入 jar中。
2) test 测试
3) provided 编译和测试 生效 ,不会 打包, 如 servlet
4) runtime 运行时 才有效。 编译时用接口, 如 jdbc 驱动
5) system 本地的一些jar的 引用, 如: 短信 jar
6)import: 解决单继承问题。
依赖传递性:
compile | Test | Provided | Runtime | |
---|---|---|---|---|
Compile | Compile | - | - | Runtime |
Test | Test | - | - | Test |
Provided | Provide | - | Provided | Provided |
Runtime | Runtime | - | - | Runtime |
依赖仲裁:
最短路径原则:
加载先后顺序原则:
3.4 一些插件
统一修改 version的插件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.3</version>
<configuration>
<generateBackupPoms>false</generateBackupPoms>
</configuration>
</plugin>
3.5 生命周期:
clean --> default --> site
生命周期包含 phase,
phase 包含 goals
-
clean
-
pre-clean
-
clean
-
post-clean
-
-
default:
-
compile
-
package
-
install
-
deploy
....
-
-
site
- pre-site
- site
- post-site
- site-deploy
总结
1、温习了 基本的一些配置和使用。
2、插件这块 还没和深入看。
提问
如果有个 需求: 开发一个sdk, 在项目中引用这个sdk, 但想要 sdk中的pom依赖 只在 sdk中生效,在项目中 不生效,但要保证 项目引用sdk能正常运行? 怎么解决??
使用
import 做过尝试,发现 不对。