1

我有一个从工件 jenkins 插件派生的插件,它将工件部署到工件。几天前我遇到一个奇怪的问题时,它现在工作正常:我将我的工件部署到布局并且插件部署良好,但是在布局的叶级别而不是部署工件,它使它成为一个空文件夹。

我进入日志并看到以下内容:

 (o.a.e.UploadServiceImpl:273) - MKDir request to 'yum-snapshot-local:rhel5/i386/packages//-1.12.13-d.34.i386.rpm'
    2015-06-04 00:00:10,219 [http-bio-8081-exec-1339] [INFO ] (o.a.e.UploadServiceImpl:279) - Directory 'yum-snapshot-local:rhel5/i386/packages//-1.12.13-d.34.i386.rpm' was created successfully.
    2015-06-04 00:00:11,326 [http-bio-8081-exec-1366] [INFO ] (o.a.r.r.c.BuildResource:286) - Adding build 'test #34'
    2015-06-04 00:00:11,550 [http-bio-8081-exec-1366] [INFO ] (o.a.r.r.c.BuildResource:303) - Added build 'test #34'

正如您所看到的,由于某种原因,插件发出 mkdir 请求而不是部署,这就是为什么创建空目录的原因,但这只是 2.2.7 工件 jenkins 插件的一个分支。

我使用旧版本的插件,似乎部署得很好,日志显示:

2015-06-03 23:48:00,458 [http-bio-8081-exec-1339] [INFO ] (o.a.e.UploadServiceImpl:479) - Deploy to 'libs-snapshot-
    local:djin/platforn/cande/FreeBSD/i386/packages/something/something-1.12.13-d.20.i386.rpm' Content-Length: 51

为什么它应该突然发出 mkdir rquest ?另外我在哪里可以找到这个“oaeUploadServiceImpl”文件?

编辑 1.0

非常感谢,看起来问题在这里:

private void adjustResponseAndUpload(ArtifactoryRequest request, ArtifactoryResponse response,
            LocalRepo targetRepository) throws IOException {
        if (processOriginatedExternally(response)) {
            response = new DelayedHttpResponse((HttpArtifactoryResponse) response);
        }
        try {
            if (request.isDirectoryRequest()) {
                createDirectory(request, response);
            } else if (request.isChecksum()) {
                validateAndUploadChecksum(request, response, targetRepository);
            } else if (NamingUtils.isMetadata(request.getPath())) {
                response.sendError(SC_CONFLICT, "Old metadata notation is not supported anymore: " +
                        request.getRepoPath(), log);
            } else {
                uploadArtifact(request, response, targetRepository);
            }

if (request.isDirectoryRequest()) 由于某种原因返回 true,因此将其作为文件夹处理,但有什么好的理由?

4

0 回答 0