在詹金斯存档文物

时间:2013-06-26 04:06:34

标签: jenkins jenkins-plugins

我在jenkins中归档文件夹路径时遇到问题。我只想存档我的项目调试文件夹中的内容。我使用以下来做到这一点。

MyApp1/MyApp1/bin/Debug/*

当我使用它时,它会归档调试文件夹中的内容,但保持相同的文件夹结构(MyApp1 / MyApp1 / bin / Debug)。
如果我只需要将调试(Debug /)文件夹中的文件存档,我该怎么做。

请建议我。

5 个答案:

答案 0 :(得分:8)

仅使用归档工件设置无法删除路径的“前缀”。 (某些上传扩展确实支持此功能 - 例如,发布基于FTP的插件)

如果您真的需要这个,一个简单的解决方案就是添加一个额外的构建步骤,将Debug文件夹复制到项目工作区的根目录。

答案 1 :(得分:2)

更简洁的方法可能是创建一个专门用于生成工件的阶段,使用适当的工作目录进行设置:

    stage('Release') {
        steps {
            dir('MyApp1/MyApp1/bin/Debug') {
                archiveArtifacts artifacts: '**', fingerprint: true
            }
        }
    }

答案 2 :(得分:0)

这真的很容易!您可以像“ File Operations”插件那样使用插件。 安装后,必须在所有构建步骤之后添加一个新的“构建步骤”,其名称为“文件操作”。有很多您喜欢的选项。 例如“文件重命名”,“复制文件”,“制作文件夹”等。

带有“ Flatten”开关的“ Copy File”选项,使您能够仅复制名称不带任何文件地址的文件。您可以使用它并将文件复制到工作区的根目录并进行归档。

答案 3 :(得分:0)

我创建了一种方法来实现这一目标:

def archiveFilesWithoutPath(globPattern) {
    def files = findFiles(glob: globPattern)
    for (def i = 0; i < files.size(); i++) {
        def file = files[i]
        def parentFolder = new File(file.path).getParent()
        dir(parentFolder) {
            archiveArtifacts file.name
        }
    }
}

是这样使用的:

archiveFilesWithoutPath '**/build/libs/*.jar'

当前唯一的缺点是您需要允许

new java.io.File java.lang.String

method java.io.File getParent

在脚本批准中。

答案 4 :(得分:0)

如果使用Visual Studio,则可以阅读解决方案,找到项目文件,然后从那里找到输出目录。