13

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

MyApp1/MyApp1/bin/Debug/*

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

请给我建议。

4

5 回答 5

10

您不能仅使用存档工件设置来删除路径的“前缀”。(一些上传扩展确实支持这一点 - 例如通过 FTP 发布插件)

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

于 2013-06-26T12:42:19.827 回答
9

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

    stage('Release') {
        steps {
            dir('MyApp1/MyApp1/bin/Debug') {
                archiveArtifacts artifacts: '**', fingerprint: true
            }
        }
    }
于 2018-02-11T21:52:22.660 回答
1

我创建了一个方法来实现这一点:

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

在剧本审批。

于 2019-07-24T07:59:28.777 回答
0

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

带有“Flatten”开关的“复制文件”选项,使您可以仅复制文件名称而无需任何文件地址。您可以使用它并将文件复制到工作空间的根目录中并存档。

于 2019-06-20T13:46:28.163 回答
-2

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

于 2019-07-25T20:10:00.750 回答