Maven 2 为什么maven发布插件允许依赖关系管理中的快照版本?
我们有一家公司的母公司pom。这使用DependencyManager来管理所使用的所有工件的所有依赖项的版本 令人担忧的是,快照版本可以在DependencyManager中定义。尽管在执行maven发布时,pom允许在DependencyManager中与快照版本一起发布。为什么? 如果我将子项目指向公司父pom的已发布版本,并且此子项目使用DependencyManager中定义的依赖项(尽管它是快照版本),则无法发布子项目 为什么Maven允许发布DependencyManager中定义的工件的快照版本?如果定义了快照版本,如何将maven发布插件配置为失败 令人担忧的是,快照版本可以在DependencyManager中定义。尽管在执行maven发布时,pom允许在DependencyManager中与快照版本一起发布。为什么? 我希望在发布时更新Maven 2 为什么maven发布插件允许依赖关系管理中的快照版本?,maven-2,snapshot,dependency-management,maven-release-plugin,Maven 2,Snapshot,Dependency Management,Maven Release Plugin,我们有一家公司的母公司pom。这使用DependencyManager来管理所使用的所有工件的所有依赖项的版本 令人担忧的是,快照版本可以在DependencyManager中定义。尽管在执行maven发布时,pom允许在DependencyManager中与快照版本一起发布。为什么? 如果我将子项目指向公司父pom的已发布版本,并且此子项目使用DependencyManager中定义的依赖项(尽管它是快照版本),则无法发布子项目 为什么Maven允许发布DependencyManager中定义
dependencyManagement
中的快照版本。事实上,有一些Jira关于这一点,例如,这可能会影响你
所以问题是:你在使用哪个版本的插件
但说实话,现在还不清楚哪些版本会受到影响,评论让人困惑(所以我想知道这个问题是否已经解决)。无论如何,如果您使用的版本受到影响,请升级到较新的版本。如果缺陷/回归(我认为这是一个缺陷)仍然存在,那么就提出一个新问题。我不知道为什么(我个人认为这是一个缺陷),但我有一种方法来防止这种情况发生:使用Maven Enforcer插件 一家名为(小写s)的公司创建了一个规则()来防止这个确切的问题 您基本上需要将以下内容添加到父POM中:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-project-rules</id>
<phase>test</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<NoSnapshotDependenciesInDependencyManagementRule
implementation="de.smartics.maven.enforcer.rule.NoSnapshotsInDependencyManagementRule">
<onlyWhenRelease>true</onlyWhenRelease>
<checkOnlyResolvedDependencies>false</checkOnlyResolvedDependencies>
</NoSnapshotDependenciesInDependencyManagementRule>
</rules>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>de.smartics.rules</groupId>
<artifactId>smartics-enforcer-rules</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
</plugin>
org.apache.maven.plugins
maven enforcer插件
1.4.1
执行项目规则
测试
执行
真的
假的
de.smartics.rules
smartics强制执行器规则
1.0.2
thx。我们正在使用2.0-beta-9。我们将看一看这些jira票证关于这个问题的新jira。看起来它在2.2.2中被修复了,但至少在2.4中被重新引入。