Maven/Gradle - Maven/Gradle使用问题汇总
Maven/Gradle问题汇总
1.配置多仓库
<repositories> <repository> <!-- 仓库id --> <id>public-repository</id> <!-- 仓库名 --> <name>public repository</name> <!-- 仓库的url地址 --> <url>http://nexus.intra.xxxx.com/content/groups/public</url> </repository> <repository> <!-- 仓库id --> <id>private-repository</id> <!-- 仓库名 --> <name>private repository</name> <!-- 仓库的url地址 --> <url>http://nexus.intra.xxxx.com/content/groups/private</url> </repository> </repositories>
2.排除不需要的JAR包
例如:spring-core会自动引入commons-logging-1.2。当我们添加其他依赖的时候,有可能也会自动引入commons-logging,而且版本有可能不是1.2,这个时候这两个commons-logging就会互相冲突,需要使用 <exclusions> 排除那个不想要的JAR包。
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.6.RELEASE</version> <exclusions> <exclusion> <artifactId>commons-logging</artifactId> <groupId>commons-logging</groupId> </exclusion> </exclusions> </dependency>
3.项目启动报Attempted to load applicationConfig: [classpath:/application.yml] but snakeyaml was not found on the classpath
试图加载applicationconfig:[classpath:/application.yml] 但在类路径上找不到snakeyaml。在pom文件中手动加入对snakeyaml的依赖即可。
<dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> </dependency>
4.maven更新时报错resolution will not be reattempted until the update interval of XXX has elapsed or updates are force
maven更新version之后,依赖包总是下不下来。错误消息如下:
resolution will not be reattempted until the update interval of XXX has elapsed or updates are force
意思就是:
在 XXX 的更新间隔过去或强制更新之前,不会重新尝试解析。
打开本地maven库会发现,文件夹中只有 .lastUpdate 文件,没有jar包。
而maven的默认更新时间为day,即一天更新一次,所以我们一般都是采用强制更新的方式。
强制执行命令:
mvn clean install -U
5.maven项目变更为gradle项目
进入pom.xml文件路径,执行:
gradle init --type pom
6.Lombok在Gradle项目里不生效
implementation 'org.projectlombok:lombok:1.18.20'
上面这种方式引入lombok的话,在gradle6中是不生效的,要换成以下形式:
compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.20'
annotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.20'