自己所在的部门主要是为其他项目组提供基础组件,如果需要使用新特性,其他项目组还会经常引用SNAPSHOT版本的组件进行开发测试。平时自己做测试的时候,因为手里有源码,所以每次都是先执行 mvn install 在本地安装后,在新建项目引用组件进行测试,所以没有发现什么问题。这次没有先本地安装,却怎么也拉取不下来,控制台一直报如下错误:
- Could not find artifact xxx:jar:1.21.0-SNAPSHOT
-
- Try to run Maven import with -U flag (force update snapshots)
根据提示执行强制拉取也无效,于是研究了下公司内其他工程是怎么配置的,之后成功拉取到了这个组件。
Maven默认不支持拉取SNAPSHOT依赖,需要在工程根 pom.xml 中添加
- "1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0modelVersion>
-
- <groupId>beemo.demogroupId>
- <artifactId>maven-snapshotartifactId>
- <version>1.0.0version>
-
-
- <properties>
- <maven.compiler.source>8maven.compiler.source>
- <maven.compiler.target>8maven.compiler.target>
- <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
- properties>
-
- ...
-
- <repositories>
- <repository>
-
- <id>my-snapshotsid>
-
- <url>http://HOST:PORT/repository/maven-snapshots/url>
-
- <snapshots>
- <enabled>trueenabled>
- snapshots>
- repository>
- repositories>
-
- ...
-
- project>