作为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 回答
SNAPSHOT(实际上是集成修订版)术语由repository layouts强制执行 .
由于Artifactory强制执行single-typed repositories,因此Maven仓库无法处理
.exe
文件的版本控制是正确的 .使用通用仓库是正确的路径 - 但您需要定义自己的文件夹和文件integration revision以让Artifactory接收它 .