Spring Boot# Could not transfer artifact..maven导包问题查看和修改内置Tomcat版本自定义启动Banner

Posted LRcoding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot# Could not transfer artifact..maven导包问题查看和修改内置Tomcat版本自定义启动Banner相关的知识,希望对你有一定的参考价值。

1. 解决新建Spring Boot项目时包导不进来的问题

新建Spring Boot项目,导入包时,报错Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.2.4.RELEASE

  • 可以先去阿里的中央仓库,检索对应版本的包是否存在

  • 再检查maven配置文件setting文件中,阿里源配置是否正确(注意URL中协议为 https

     <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url>https://maven.aliyun.com/nexus/content/groups/public</url>
     </mirror>
    

如果都没问题后,还是报错 sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target(无法找到有效的证书)

解决方法1:在执行 maven命令时忽略证书检查

-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true

解决方法2:将证书添加到Java信任证书库(在Java的安装目录下—> lib —> security —> carcerts)

  • 通过浏览器访问https://maven.aliyun.com/nexus/content/groups/public,将证书导出到本地
  • 将证书添加到Java信任证书库
  • 以管理员身份打开 cmd,进入到 carcerts所在文件目录
  • 执行命令 keytool -import -alias cacerts -keystore cacerts -file cer证书所在位置
  • 输入默认密钥库口令:changeit,然后输入 Y 信任此证书
  • 回到项目中重新 clean,compile

2. 查看和修改内置Tomcat版本

Spring Boot的父级依赖是一个特殊的starter,用来提供相关的Maven默认依赖,使用了父级依赖后,常用的包依赖可以省去version标签

具体提供了哪些 jar包的依赖,可以去maven仓库中对应的位置去查看pom文件(例如:…/org/springframework/boot/spring-boot-dependencies/2.1.3.RELEASE/spring-boot-dependencies-2.1.3.RELEASE.pom)

  • spring-boot-starter-parent 的形式

     <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>2.1.3.RELEASE</version>
       <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
    • 直接在项目的pom文件中,使用 properties 标签覆盖版本

      <properties>	
      	<tomcat.version>10.0.0</tomcat.version>
      </properties>
      
      <!-- 覆盖版本后,还需要添加juli的依赖包,避免报错 -->
      <dependency>
      	<groupId>org.apache.tomcat</groupId>
      	<artifactId>tomcat-juli</artifactId>
      	<version>$tomcat.version</version>
       </dependency>
      
  • spring-boot-dependencies 的形式,需要通过dependencyManagement进行依赖管理

    spring-boot-starter-parent 包继承自 spring-boot-dependencies

    <dependencyManagement>
         <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.1.3.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    • 此形式将不能使用 properties的方式去覆盖版本,需要在dependencyManagement里面的spring-boot-dependencies之前添加要升级的完整依赖

3. 自定义启动Banner

  • 在Spring Boot项目的 resources目录下新建一个 banner.txt 文件
  • 在这个文件中,写入的内容将在项目启动时打印出来
  • 如果想要实现艺术字的效果,可以通过这个在线网站,进行生成(个人爱好使用 big字体)

以上是关于Spring Boot# Could not transfer artifact..maven导包问题查看和修改内置Tomcat版本自定义启动Banner的主要内容,如果未能解决你的问题,请参考以下文章

spring boot:JPA org.hibernate.LazyInitializationException: could not initialize proxy [XXX#1] - n(代码

spring boot配置spring-data-jpa的时候报错CannotCreateTransactionException: Could not open JPA EntityManager

mybatis+spring boot, mapper 提示Could not autowire. No beans of … type found

spring boot Could not connect to SMTP host: smtp.xxx.com, port: 465, response: -1

微服务读取不到config配置中心配置信息,Spring Boot无法找到PropertySource:找不到标签Could not locate PropertySource: label not

Spring Boot# Could not transfer artifact..maven导包问题查看和修改内置Tomcat版本自定义启动Banner