下面的代码片段似乎包含了错误的代码:
PomTransformer.java
私人void verifyNonSnapshotVersion(ModuleName ModuleName, Element Element, Namespace ns) {如果(! failOnSnapshot) {返回;} Element version = Element . getchild (“版本”、ns);如果(versionElement ! =零) {字符串currentVersion = versionElement.getText();如果(currentVersion.endsWith (“快照”)) {扔新SnapshotNotAllowedException (字符串.format ("文件中检测到快照' % s ': % s: % s”, pomFile.getAbsolutePath(), moduleName, currentVersion));}}
代码只检查以“-SNAPSHOT”结尾的文本的版本标记。如果这首歌是这样的:
...< >属性< dependency.version >1.0.0-SNAPSHOT< / dependency.version >< / >属性...< >的依赖关系< >的依赖< artifactId >自由< / artifactId >< groupId >com.example< / groupId ><版本>$ {dependency.version}> < /版本< / >的依赖< / >的依赖关系
代码将不会在版本标记文本中找到“-SNAPSHOT”,因此将允许发布通过。
预期结果:当代码在版本标记中查找对属性的引用时,应该查找在此pom或父pom中定义的属性,并检查这些属性是否有快照引用。
- 取决于
-
图- 61当版本被定义为属性时,可以发布带有快照依赖的Maven项目
- Open
The issue is open and ready and has been assigned to a release version">开放
- Open