我在jenkins中归档文件夹路径时遇到问题。我只想存档我的项目调试文件夹中的内容。我使用以下来做到这一点。
MyApp1/MyApp1/bin/Debug/*
当我使用它时,它会归档调试文件夹中的内容,但保持相同的文件夹结构(MyApp1 / MyApp1 / bin / Debug)。
如果我只需要将调试(Debug /)文件夹中的文件存档,我该怎么做。
请建议我。
答案 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,则可以阅读解决方案,找到项目文件,然后从那里找到输出目录。