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 文件中 配置了 多个 , 并配置了 nexus 的地址,直接 登入 nexus 上去 url 也没问题,想到  -P的命令,进行deploy, 成功了。

原来如此简单,但说不出原理。赶紧温习下!!

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 做过尝试,发现 不对。

posted @ 2020-07-30 18:05  小烽  阅读(1191)  评论(0编辑  收藏  举报