我在詹金斯存档文件夹路径有问题。我只想存档我的项目调试文件夹中的内容。我使用以下来做到这一点。
MyApp1/MyApp1/bin/Debug/*
当我使用它时,它将存档调试文件夹内的内容,但保持相同的文件夹结构(MyApp1/MyApp1/bin/Debug)。
如果我只需要归档调试(调试/)文件夹中的文件,我应该做什么。
请给我建议。
我在詹金斯存档文件夹路径有问题。我只想存档我的项目调试文件夹中的内容。我使用以下来做到这一点。
MyApp1/MyApp1/bin/Debug/*
当我使用它时,它将存档调试文件夹内的内容,但保持相同的文件夹结构(MyApp1/MyApp1/bin/Debug)。
如果我只需要归档调试(调试/)文件夹中的文件,我应该做什么。
请给我建议。
您不能仅使用存档工件设置来删除路径的“前缀”。(一些上传扩展确实支持这一点 - 例如通过 FTP 发布插件)
如果您真的需要这个,一个简单的解决方案是添加一个额外的构建步骤,将您的 Debug 文件夹复制到项目工作区的根目录。
一种更简洁的方法可能是设置一个专门用于生成工件的阶段,并使用适当的工作目录进行设置:
stage('Release') {
steps {
dir('MyApp1/MyApp1/bin/Debug') {
archiveArtifacts artifacts: '**', fingerprint: true
}
}
}
我创建了一个方法来实现这一点:
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
在剧本审批。
这真的很容易!您可以像“文件操作”插件一样使用插件。安装后,必须在所有构建步骤之后添加一个新的“构建步骤”,名称为文件操作。有很多你喜欢的选择。例如“文件重命名”、“复制文件”、“制作文件夹”等。
带有“Flatten”开关的“复制文件”选项,使您可以仅复制文件名称而无需任何文件地址。您可以使用它并将文件复制到工作空间的根目录中并存档。
如果是 Visual Studio,您可以阅读解决方案,找到项目文件,然后从那里找到输出目录。