如何在Gerrit中安装delete-project插件?

12

我想在我的Gerrit服务器上安装delete-project插件。根据最新版本,我应该从Google源代码中克隆它并使用buck build。

我已经克隆了它,而且我的buck也准备好了。

应该遵循哪些步骤来构建delete-project插件并将其添加到我的Gerrit服务器上。

我尝试过

buck build .
在删除项目的克隆源代码中。但是,我遇到了以下错误
Traceback (most recent call last):
  File "/home/gerrit/buck/src/com/facebook/buck/parser/buck.py", line 872, in <module>
    main()
  File "/home/gerrit/buck/src/com/facebook/buck/parser/buck.py", line 867, in main
    buildFileProcessor.process(build_file.rstrip())
  File "/home/gerrit/buck/src/com/facebook/buck/parser/buck.py", line 800, in process
    build_env['BUILD_FILE_SYMBOL_TABLE'])
  File "/home/gerrit/delete-project/././BUCK", line 1, in <module>
    gerrit_plugin(
NameError: name 'gerrit_plugin' is not defined
BUILD FAILED: Parse error for BUCK file ././BUCK: End of input at line 1 column 1

请帮忙

5个回答

14
  1. https://gerrit-ci.gerritforge.com下载与您的Gerrit版本匹配的构建版本中的delete-project.jar文件。
  2. 将其复制到gerrit/plugins目录中。
  3. 重新启动Gerrit。

1
选择与您的Gerrit版本匹配的Plugins-stable-2.xx选项卡,以找到正确的plugin-delete-project构建作业。 - siebert

14

我按照以下帖子成功安装了delete-project插件:

https://groups.google.com/forum/#!topic/repo-discuss/hbBc2TUhl7s

然后按照以下网址进行了安装:

https://gerrit-review.googlesource.com/Documentation/cmd-plugin-install.html

附:我按照以下步骤构建了jar包:

  1. git clone --recursive https://gerrit.googlesource.com/gerrit
  2. cd gerrit
  3. git clone --recursive https://gerrit.googlesource.com/plugins/delete-project
  4. buck build delete-project:delete-project

你应该可以在buck-out/gen/delete-project/delete-project.jar中找到delete-project.jar文件。


1
每当我运行 buck build delete-project:delete-project 时,会出现 OSError: [Errno 2] No such file or directory (/usr/lib/python2.7/subprocess.py 的错误信息,请问这是为什么呢?我已经安装了 subprocess.py 库。 - Tim
@TimCastelijns:你在使用Arch Linux吗?那个错误是因为系统的/usr/bin/python是Python 3,而不是Python 2。你可以创建一个像~/bin这样的目录,将Python 2链接到其中(ln -s /usr/bin/python2 ~/bin/python),然后用PATH="~/bin:$PATH" buck ...运行buck。 - Andrew Gunnerson
@Xiao-LongChen 使用的是Ubuntu Server 14.04,/usr/bin/python --version 命令显示Python版本为2.7.6。 - Tim
您介意发布完整的构建日志吗?“subprocess”模块可能会失败,因为它试图运行一个不存在的程序。 - Andrew Gunnerson
如果您想安装Gerrit存储库中默认包含的插件之一,请在第1步中添加 --recursive选项。它将下载所有子模块。请注意,如果您是从 *.war文件安装Gerrit,则上述步骤不足够。在这种情况下,请将上述步骤作为一个附加项目完成,构建插件 *.jar文件并将它们复制到您的生产Gerrit中。 - Szymon Sadło

2

1

我对上面的答案感到困惑,可能是因为我使用了新版本的Gerrit(2.11.2)。在this document中的步骤都适用于我,只需添加一个步骤-当您克隆Gerrit源代码时,需要添加--recursive标志,以便它包括标准插件的源代码:

git clone --recursive https://gerrit.googlesource.com/gerrit

另外,请确保检查与您的Gerrit版本相对应的正确Git分支,例如:

git fetch origin stable-2.11:stable-2.11
git checkout stable-2.11

0

以下是如何为gerrit 3.x构建delete-project.jar

  1. 安装bazel
  2. 使用git clone --recursive https://gerrit.googlesource.com/gerrit下载gerrit源代码
  3. cd gerrit
  4. bazel build plugins/delete-project:delete-project

最后一步将生成bazel-bin/plugins/delete-project/delete-project.jar,然后可以按照官方文档中的说明进行安装。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接