作为一个相对新手询问 repo 术语和语义:
我有一个构建 Spring-Boot jar 文件的 gradle 项目,然后运行 InstallAnywhere 项目文件以将 jar 打包为 Windows 服务的安装程序。我需要将可执行安装程序发布为 SNAPSHOT。我正在使用 gradle 神器插件(不是 artifactory-publish 插件,只是因为我遵循的是姊妹项目的示例)。
Artifact 正在发布到 Maven 快照存储库,但“-SNAPSHOT”占位符没有被时间戳替换。当我将原始 Jar 文件添加到要发布的 Artifact 中时,Jar 文件会添加一个时间戳,但 .exe 仍然没有。相关的 gradle 代码如下,项目版本在 gradle.properties 中设置为“1.0.0-SNAPSHOT”,以及其他显示的 Artifact 配置属性:
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 存储库配置中存在的快照选项。
最佳答案
repository layouts 强制使用 SNAPSHOT(实际上是集成修订)术语.
由于 Artifactory 强制执行 single-typed repositories您是正确的,Maven 存储库不会处理 .exe
的版本控制。文件。
使用通用 repo 是正确的路径 - 但您需要定义自己的文件夹和文件 integration revision让 Artifactory 接手它。
关于maven - 在 Artifactory 中将可执行二进制文件发布为 Maven SNAPSHOT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42120772/