Yon*_*bbs 9 gradle maven azure-devops
我有一个摇篮建立天青的DevOps,其编译在天青的DevOps git仓库代码设置,然后发布所生成的JAR(如Maven构件)天青工件,如所解释这里.然后,其他Azure DevOps git存储库中的代码可以将这些组件作为依赖项引用.这对于这些组件的正式版本(具有唯一的版本号)来说很好,但我还需要一种方法来使这个版本适用于正在进行的快照版本.问题是我无法多次发布具有相同版本号(例如1.2.3-SNAPSHOT)的工件.这似乎是因为Azure中的包是不可变的.
根据我的理解,这意味着Azure Artifacts不能用于存储正在进行的快照工件.那是对的吗?
如果是,是否有任何替代方案仍然使用Azure DevOps?我可以看到我可以将工件发布到Azure Blob存储,但可能这是您必须在Azure Artifacts的现有使用之上支付的费用.我还可以看到有很多GitHub Maven插件可以将GitHub存储库视为Maven存储库,但是我找不到任何类似的使用Azure DevOps存储库作为发布Maven工件的地方.
如果它有所作为,我说的是基于云的Azure的东西,没有任何内部部署.
jes*_*ing -1
包管理的前提是包是不可变的。这使得一大堆缓存选项成为可能,否则这些选项将不存在。包存储在本地包缓存中,可能在代理源包缓存上,所有这些元素都假设具有相同名称+版本的包未更改,并将提供缓存版本而不是您推送的最新版本。大多数软件包系统都是在此前提下构建的,包括 Nuget 和 NPM。
创建开发快照的技巧是使用语义版本控制并向您的版本添加唯一的后缀。例如,1.2.3-SNAPSHOT.1后面1.2.3-SNAPSHOT.2有可用于 Azure Pipelines 的工具,例如GitVersion,它可以自动生成唯一版本 + 后缀,您可以将其传递到工件的版本中。
如果您不想“搞乱”您的主包提要,您可以出于开发目的设置第二个提要,其中包含所有中间包,然后您可以将这些包之一提升到您的主提要,也可以运行将最终包推送到用于稳定包的 feed 的特定管道(配置)。