maven随写

目录

看一下chatgpt的回答

properties标签

type标签

reconnect问题

Method annotated with @Bean is called directly. Use dependency injection instead.

Autowired must be defined in Spring bean @Component/@Service

Field injection is not recommended

Failed to read artifact descriptor for

idea创建项目pom依赖爆红

Maven下的dependencies中出现红线的解决方法


看一下chatgpt的回答

问:maven各个标签含义和作用详细介绍

答:

Maven是一个基于项目对象模型(POM)的构建工具,POM通过一组标签描述了项目的信息、依赖关系、构建方式等。下面对Maven中常用的POM标签进行详细介绍。

  • groupId:定义了项目的groupId,通常与项目的包名相同。例如,com.example。
  • artifactId:定义了项目的artifactId,通常是项目的名称。例如,my-project。
  • version:定义了项目的版本号,通常使用三段式版本号,例如1.0.0。
  • packaging:定义了项目的打包方式,常见的有jar、war、pom、ear等。
  • name:定义了项目的名称。
  • description:定义了项目的描述信息。
  • url:定义了项目的URL地址。
  • developers:定义了项目的开发者信息,包括姓名、电子邮件、角色等。
  • licenses:定义了项目的许可证信息,包括名称、URL、分发条件等。
  • scm:定义了项目的源代码管理信息,包括URL、开发分支、标签等。
  • dependencies:定义了项目的依赖关系,包括groupId、artifactId、version、scope等。可以通过依赖关系自动下载并导入项目必需的库文件。
  • repositories:定义了项目的仓库信息,包括id、URL等。Maven会从这些仓库中查找并下载依赖库文件。
  • build:定义了项目的构建方式,包括源代码目录、输出目录、插件等。
  • plugins:定义了项目所需要的插件,包括groupId、artifactId、version、配置等。插件可以帮助完成各种构建、测试、打包等任务。
  • profiles:定义了项目的配置文件,可以根据不同的环境或需求设置不同的配置文件。例如,可以设置不同的数据库连接信息、日志级别等。 以上是常用的Maven POM标签,不同的标签组合可以描述一个完整的项目信息,Maven会根据POM文件中的信息自动下载并导入依赖库文件,完成项目的构建、测试、打包等任务。

这里面的回答有些许帮助,我们可以参考一下

properties标签

在标签内可以把版本号作为变量进行声明,后面dependency中用到版本号时可以用${变量名}的形式代替,这样做的好处是:当版本号发生改变时,只有更新properties标签中的变量就行了,不用更新所有依赖的版本号。
比如在多模块 maven项目时,父工程pom文件中定义该标签的变量,其他子类工程对该依赖引用后,当依赖的版本号发生改变时,只需要修改父工程该依赖的版本号即可

type标签

type:指明依赖需要引入的类型(jar、war、pom等),默认jar。为什么要说这个标签呢因为要用到import这个必须要声明pom

我们来看下我项项目中的例子:

  
        user-service
        order-service
        eureka-server
        gateway
    
 
    pom
 
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.9.RELEASE
        
    
  • 首先,我这个pom文件是作为其他子模块pom文件的父类,在该模块下我使用标签继承了SpringBoot的所有依赖(但不是引入jar包!),这样方便于版本的管理。
  • 其次,我还要在项目中用到SpringCloud的相关依赖,但是标签已经被占用了,怎么办?
    这时候我们就需要使用 + 来引入SpringCloud的相关依赖,也就是我们常说的需要“解决Maven依赖单继承问题”。
    也就是说,这时由于maven的继承模式是单继承模式,我们就不能直接使用标签来继承Spring Cloud的依赖,那要怎么办呢?我们看下面代码:
 
        
            
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
                
    

一个一个导入会很麻烦而且会是pom文件过大,所以官方提供了一个依赖合集——直接引入spring-cloud-dependencies,即整个cloud全套的依赖!!

这样就解决了单继承的问题。要注意的是import必须在<

一个一个导入会很麻烦而且会是pom文件过大,所以官方提供了一个依赖合集——直接引入spring-cloud-dependencies,即整个cloud全套的依赖!!

这样就解决了单继承的问题。要注意的是import必须在下使用并且必须声明类型为pom

当一个父pom中的dependencyManagement标签中需要导入另一个pom中的dependencyManagement的时候(此处是想引入spring-cloud-dependencies工程中的),则必须同时使用import 和 pom

注意:dependencyManagement只在父工程(即pom类型的maven工程)中声明,在子工程中定义无需声明版本从而生效。如果在jar类型的maven工程中添加了dependencyManagement,是没有意义的。 

原文:maven中<scope>import</scope>标签<type>pom</type>标签的含义_pom文件type标签_HD243608836的博客-CSDN博客

reconnect问题

maven随写_第1张图片

Method annotated with @Bean is called directly. Use dependency injection instead.

自定义SecurityConfig类继承了WebSecurityConfigurerAdapter,为config配置类但是未添加@Configuration注解,导致@Bean之间相互调用出错,添加@Configuration注解即可解决

Autowired must be defined in Spring bean @Component/@Service

自动注入对象必须定义在有效的spring bean内,也就是说只有本身作为bean的类才能注入其他对象。

maven随写_第2张图片

Field injection is not recommended

maven随写_第3张图片

其他人的解决办法就是在setting里面修改提示,也可以这样改吧,也没啥问题都是注入maven随写_第4张图片 

Failed to read artifact descriptor for

maven随写_第5张图片

删除对应的文件夹试试

maven随写_第6张图片

 有时候下不下来,是因为在maven xml里面配了对应仓库地址有问题

maven随写_第7张图片

还有你发现怎么也下不下来,有可能你的依赖名字错了 

idea创建项目pom依赖爆红

idea创建项目pom依赖爆红_idea依赖爆红_辉辉要努力变强的博客-CSDN博客

Maven下的dependencies中出现红线的解决方法

maven随写_第8张图片

 当出现以上的情况时,有两种原因:
1、是本地仓库中没有依赖,解决办法:解决idea打开的项目中maven依赖下载失败问题-CSDN博客
2、是本地仓库已经有对应的依赖

这种情况可以先把对应的标签dependency的内容删除保存,再把内容添加回来重新保存,一般就可以解决了。

Maven下的dependencies中出现红线的解决方法-CSDN博客

有些人也会把.idea删掉解决maven依赖报错的问题 

maven随写_第9张图片

你可能感兴趣的:(开发工具,mybatis,java,spring)