【发布时间】:2017-02-08 18:21:04
【问题描述】:
作为相对新手询问 repo 术语和语义: 我有一个构建 Spring-Boot jar 文件的 gradle 项目,然后运行 InstallAnywhere 项目文件以将 jar 打包为 Windows 服务的安装程序。我需要将可执行安装程序发布为 SNAPSHOT。我正在使用 gradle artifactory 插件(不是 artifactory-publish 插件,只是因为我遵循的是姊妹项目的示例)。
工件正在发布到 Maven 快照存储库,但“-SNAPSHOT”占位符没有被时间戳替换。当我将原始 Jar 文件添加到要发布的工件中时,Jar 文件会添加一个时间戳,但 .exe 仍然没有。相关的 gradle 代码如下,项目版本在 gradle.properties 中设置为“1.0.0-SNAPSHOT”,以及其他显示的工件配置属性:
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 进行快照呢?我们将看看它是否是 Maven 存储库仅处理与 Java 相关的类型(jar、war、ear 等)的限制。因此,我们考虑使用 generic(?) 存储库类型为二进制快照创建另一个 Artifactory 存储库,但配置屏幕不提供 Maven 存储库配置中存在的快照选项。
【问题讨论】:
标签: maven gradle executable artifactory snapshot