【问题标题】:Artifactory - NuGet - Max Unique SnapshotsArtifactory - NuGet - 最大唯一快照
【发布时间】:2018-05-31 14:14:26
【问题描述】:

我在 Artifactory 上创建了 nuget 本地存储库,并将 Max Unique Snapshots 选项设置为 10。但是 artifactory 不会删除旧包。

dotnet-snapshots/
├── sompackage/
│   ├── 1.0.0-build1
|   |   ├── somepackage.1.0.0-build1.nupkg
|   ├── 1.0.0-build2
|   |   ├── somepackage.1.0.0-build2.nupkg
│   ├── ...
|   ├── 1.0.0-build25
|   |   ├── somepackage.1.0.0-build25.nupkg

问题可能出在哪里?我认为这与包命名有关。

【问题讨论】:

    标签: .net nuget versioning artifactory snapshot


    【解决方案1】:

    这可能与您的存储库使用的布局有关。 FYI Artifactory 正在使用此布局来提取一些元数据,例如基本修订版、集成修订版(快照)、模块名称......

    默认情况下,nuget 存储库使用如下定义的“nuget-default”布局:“[orgPath]/[module]/[module].baseRev.nupkg”

    但在您的情况下,您正在部署 nuget 包,就好像布局是: "[orgPath]/[module]/baseRev/[module].baseRev.nupkg"

    所以你可以做的是:

    重新命令您的存储库以匹配布局 或创建与您的部署路径匹配的自定义布局

    此外,当您编辑/创建布局时,您可以使用现有工件对其进行测试,以检查 Artifactory 是否从部署路径中提取您期望的内容。

    【讨论】:

    • 只是添加到@jroquelaure 回复中,因为 Artifactory 中的默认 Nuget 布局是:[orgPath]/[module]/[module].[baseRev](-[fileItegRev]).nupkg 和'[fileItegRev]' 被定义为 '.*' 一个适合您目标的文件结构可以是: myProject/somepackage/somepackage.1.0.0-build1.nupkg 这会将 'build1' 识别为集成版本。另一种选择可能是创建自己的布局。可能类似于:orgPath]/[module]/[baseRev](-[folderItegRev])/[module].[baseRev](-[fileItegRev]).nupkg 这将匹配:myProject/somepackage/1.0.0-build1/ somepackage.1.0.0-build1.nupkg
    猜你喜欢
    • 2018-01-14
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 2015-03-10
    • 1970-01-01
    相关资源
    最近更新 更多