创建发布版本后如何管理 Maven 依赖工件
How to manage maven dependant artifacts after creating release versions
我们正在使用发布插件将快照转换为发布,但快照已作为依赖项添加到其他项目中。我们是否需要更新每个项目 pom 才能使用新版本。
例如:ArtifactA包含在ArtifactB中,
ArtifactA 包含在 ArtifactC 中
ArtifactB 和 ArtifactC 包含在 Artifact D
是否有替代方法来推送依赖版本来代替快照
[我们使用 Jenkins 构建并推送到 Nexus]
我们的构建服务器运行 versions:use-releases
,然后在构建之前提交到 SVN。这会将所有 SNAPSHOT 版本替换为它们各自的发行版本(如果存在)。
一种处理发布的不那么麻烦的方法 - 继续使用快照。从技术上讲,快照没有任何问题,也不需要更改它们来发布版本。只是不要使用带有 SNAPSHOT
后缀的版本 - 使用已解析的快照(带有时间戳和内部版本号)。
至于依赖项——通常不需要在发布后立即更改版本。只有当客户 需要 更新时,他们才应该手动更改为更新的版本。
如果我们将远程 API 及其客户端库作为依赖项进行讨论 - 这样的远程 API 需要保持向后兼容性,以便为其他人留出一些时间进行升级。
我们正在使用发布插件将快照转换为发布,但快照已作为依赖项添加到其他项目中。我们是否需要更新每个项目 pom 才能使用新版本。
例如:ArtifactA包含在ArtifactB中,
ArtifactA 包含在 ArtifactC 中
ArtifactB 和 ArtifactC 包含在 Artifact D
是否有替代方法来推送依赖版本来代替快照
[我们使用 Jenkins 构建并推送到 Nexus]
我们的构建服务器运行 versions:use-releases
,然后在构建之前提交到 SVN。这会将所有 SNAPSHOT 版本替换为它们各自的发行版本(如果存在)。
一种处理发布的不那么麻烦的方法 - 继续使用快照。从技术上讲,快照没有任何问题,也不需要更改它们来发布版本。只是不要使用带有 SNAPSHOT
后缀的版本 - 使用已解析的快照(带有时间戳和内部版本号)。
至于依赖项——通常不需要在发布后立即更改版本。只有当客户 需要 更新时,他们才应该手动更改为更新的版本。
如果我们将远程 API 及其客户端库作为依赖项进行讨论 - 这样的远程 API 需要保持向后兼容性,以便为其他人留出一些时间进行升级。