发布带有 SNAPSHOT 测试依赖的项目
Release project with SNAPSHOT test dependency
我在我的项目 中使用 快照依赖项只是为了测试
<dependency>
<groupId>com.my-company</groupId>
<artifactId>my-test-library</artifactId>
<version>LATEST</version>
<scope>test</scope>
</dependency>
我知道使用 LATEST
的风险,但这正是我想在测试中实现的目标。但是,当我调用 mvn release:prepare
时,此测试依赖项 会阻止生产代码的发布 :
[INFO] Checking dependencies and plugins for snapshots ...
There are still some remaining snapshot dependencies.
...
Caused by: org.apache.maven.shared.release.ReleaseFailureException: Can't release project due to non released dependencies :
com.my-company:my-test-library:jar:LATEST:test
in project 'My Project'
我的dependencyManagement
:
<distributionManagement>
<repository>
<uniqueVersion>true</uniqueVersion>
<id>rep-releases</id>
<name>Release Repo</name>
<url>${url}</url>
</repository>
<snapshotRepository>
<uniqueVersion>true</uniqueVersion>
<id>rep-snapshots</id>
<name>Snapshots Repo</name>
<url>${url}</url>
</snapshotRepository>
</distributionManagement>
为什么测试代码和发布过程有关系?我怎样才能继续发布并保持依赖关系不变?
您所做的确实违反了所有规则,您还应该首先发布测试依赖项,然后发布,然后将项目版本切换到快照并将测试范围的依赖项恢复到快照。
如果您真的、真的、真的必须做蠢事,那么您可以指定 -DignoreSnapshots=true
选项。但是,这将忽略 pom.xml
中定义的任何 SNAPSHOT
依赖项,这更糟糕。
您已收到警告。风险自负,愿上帝怜悯!
如果您了解使用 LATEST 的所有后果。你可以使用命令:
mvn release:prepare -DignoreSnapshots=true
属性 ignoreSnapshots=true
允许 SNAPSHOT 依赖关系
我在我的项目 中使用 快照依赖项只是为了测试
<dependency>
<groupId>com.my-company</groupId>
<artifactId>my-test-library</artifactId>
<version>LATEST</version>
<scope>test</scope>
</dependency>
我知道使用 LATEST
的风险,但这正是我想在测试中实现的目标。但是,当我调用 mvn release:prepare
时,此测试依赖项 会阻止生产代码的发布 :
[INFO] Checking dependencies and plugins for snapshots ...
There are still some remaining snapshot dependencies.
...
Caused by: org.apache.maven.shared.release.ReleaseFailureException: Can't release project due to non released dependencies :
com.my-company:my-test-library:jar:LATEST:test
in project 'My Project'
我的dependencyManagement
:
<distributionManagement>
<repository>
<uniqueVersion>true</uniqueVersion>
<id>rep-releases</id>
<name>Release Repo</name>
<url>${url}</url>
</repository>
<snapshotRepository>
<uniqueVersion>true</uniqueVersion>
<id>rep-snapshots</id>
<name>Snapshots Repo</name>
<url>${url}</url>
</snapshotRepository>
</distributionManagement>
为什么测试代码和发布过程有关系?我怎样才能继续发布并保持依赖关系不变?
您所做的确实违反了所有规则,您还应该首先发布测试依赖项,然后发布,然后将项目版本切换到快照并将测试范围的依赖项恢复到快照。
如果您真的、真的、真的必须做蠢事,那么您可以指定 -DignoreSnapshots=true
选项。但是,这将忽略 pom.xml
中定义的任何 SNAPSHOT
依赖项,这更糟糕。
您已收到警告。风险自负,愿上帝怜悯!
如果您了解使用 LATEST 的所有后果。你可以使用命令:
mvn release:prepare -DignoreSnapshots=true
属性 ignoreSnapshots=true
允许 SNAPSHOT 依赖关系