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

标签 maven gradle executable artifactory snapshot

作为一个相对新手询问 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/

相关文章:

amazon-web-services - 与Jenkins生成的zip文件一起部署时,Lambda函数将引发未找到类的异常

c - 如何将参数传递给 C 程序创建的可执行文件?

c - 可执行文件中全局常量变量的偏移量

java - Eclipse - 使用父项目资源文件夹时的 Maven 警告

java - wsimport 生成的代码 - 打包代码的最佳实践

java - Spring 启动 : javassist not found

c++ - 当路径中有空格时,从与 Qt 应用程序相同的目录启动可执行文件

java - 如何以编程方式启动 OSGi

Gradle 无法解决传递依赖,但直接依赖有效

gradle - Gradle:主要来源集取决于其他来源集吗?