首页 文章

在Artifactory中将可执行二进制文件发布为Maven SNAPSHOT

提问于
浏览
0

作为repo术语和语义的相对新手:我有一个gradle项目,它构建一个Spring-Boot jar文件,然后运行一个InstallAnywhere项目文件来打包jar作为Windows服务的安装程序 . 我需要将可执行安装程序发布为SNAPSHOT . 我正在使用gradle artifactory 插件(不是 artifactory-publish 插件,只是因为我跟随姐妹项目的例子) .

工件正在发布到Maven快照存储库,但“-SNAPSHOT”占位符不会被时间戳替换 . 当我将原始Jar文件添加到要发布的工件时,Jar文件会添加时间戳,但.exe仍然没有 . 随后是相关的gradle代码,项目版本在gradle.properties中设置为“1.0.0-SNAPSHOT”,以及其他显示的artifactory配置属性:

task buildInstaller {
    inputs.files cleanJarName.outputs
    outputs.file installerFile
    doLast {
        project.exec {
            workingDir 'InstallKit'
            commandLine "${System.env.INSTALLANYWHERE_HOME}\\build.exe", 'MyInstallAnywhereProject.iap_xml', '-nupd'
        }
    }
}

artifactoryPublish {
    dependsOn buildInstaller
}

configurations {
    published
}

artifacts {
    published installerFile
}

artifactory {
    contextUrl = project.artifactoryContextUrl
    publish {
        repository {
            repoKey  = project.artifactoryPublishRepo
            username = project.artifactoryUser
            password = project.artifactoryPassword
        }
        defaults {
            publishConfigs('published')
            publishBuildInfo = true
            publishArtifacts = true
            publishPom = true
            publishIvy = true
        }
    }
    resolve {
        repository {
            repoKey  = project.artifactoryResolveRepo
            username = project.artifactoryUser
            password = project.artifactoryPassword
            maven=true
        }
    }
}

那么为什么Artifactory不能正确快照.exe?我们将看看它是否仅限于处理与Java相关的类型(jar,war,ear等)的Maven repos . 因此,我们考虑使用通用(?)repo类型为二进制快照创建另一个Artifactory仓库,但配置屏幕不提供Maven仓库配置中存在的快照选项 .

1 回答

  • 1

    SNAPSHOT(实际上是集成修订版)术语由repository layouts强制执行 .

    由于Artifactory强制执行single-typed repositories,因此Maven仓库无法处理 .exe 文件的版本控制是正确的 .

    使用通用仓库是正确的路径 - 但您需要定义自己的文件夹和文件integration revision以让Artifactory接收它 .

相关问题