3

这可能是一个新手问题,但我是 Maven 新手。

我正在尝试构建 Gerrit 的复制插件,“因为主分支(以及 Gerrit 2.5)不再支持开箱即用的复制。”

所以我确实克隆了https://gerrit.googlesource.com/plugins/replicationmvn clean install在新目录中执行。错误信息是:

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building replication 1.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for com.google.gerrit:gerrit-plugin-api:jar:2.6-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.840s
[INFO] Finished at: Thu Apr 25 17:30:10 BRT 2013
[INFO] Final Memory: 6M/105M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project replication: Could not resolve dependencies for project com.googlesource.gerrit.plugins.replication:replication:jar:1.1-SNAPSHOT: Failure to find com.google.gerrit:gerrit-plugin-api:jar:2.6-SNAPSHOT in https://gerrit-api.commondatastorage.googleapis.com/release/ was cached in the local repository, resolution will not be
reattempted until the update interval of gerrit-api-repository has elapsed or updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

看起来这个 URL 无效:https ://gerrit-api.commondatastorage.googleapis.com/release/ - 但就像我说的,我是 Maven 新手,所以我不确定如何继续。我做了一些研究,但我不知道我在寻找什么。

任何指针将不胜感激。提前致谢。

4

5 回答 5

1

就像布拉德提到的那样,我错过了gerrit-plugin-api.jar。不幸的是,我无法构建它,因为 Gerrit 存储库最近似乎遇到了问题,正如其他线程中提到的(例如,两天前的这个)。

无论如何,以下是我根据布拉德回答的额外步骤(希望这可能对其他人有所帮助):

git clone https://gerrit.googlesource.com/gerrit
cd gerrit/gerrit-plugin-api/
mvn clean install

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Gerrit Code Review - Plugin API 2.7-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for com.google.gerrit:gerrit-sshd:jar:2.7-SNAPSHOT is missing, no dependency information available
[WARNING] The POM for com.google.gerrit:gerrit-httpd:jar:2.7-SNAPSHOT is missing, no dependency information available
[WARNING] The POM for com.google.gerrit:gerrit-pgm:jar:2.7-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.342s
[INFO] Finished at: Fri Apr 26 10:52:54 BRT 2013
[INFO] Final Memory: 5M/105M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project gerrit-plugin-api: Could not resolve dependencies for project com.google.gerrit:gerrit-plugin-api:jar:2.7-SNAPSHOT: The following artifacts could not be resolved: com.google.gerrit:gerrit-sshd:jar:2.7-SNAPSHOT, com.google.gerrit:gerrit-httpd:jar:2.7-SNAPSHOT, com.google.gerrit:gerrit-pgm:jar:2.7-SNAPSHOT: Failure to find com.google.gerrit:gerrit-sshd:jar:2.7-SNAPSHOT in https://gerrit-maven.commondatastorage.googleapis.com was cached in the local repository, resolution will not be reattempted until the update interval of gerrit-maven has elapsed or updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

EDIT

这些是对我有用的步骤,以防其他人面临同样的问题。

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

检查可用的“版本”

git branch -r 
git checkout -b 2.5 origin/stable-2.5

这些步骤在我的环境中的主分支上不起作用,我使用的是 2.5 ......
所以是的,2.5。

cd gerrit
mvn clean install

这将重建整个宇宙,去喝杯咖啡。:)
.. 完成后

cd gerrit-plugin-api/
mvn package

这也需要一些时间......
如果一切顺利,您可以将 jar 复制到目标文件夹,例如:

cp target/<large-name>.jar ~/replication.jar

最后安装它(来自〜):

ssh -p 29418 localhost gerrit plugin install -n name \ - <replication.jar

有关如何安装 Gerrit 插件的详细信息,请参见此处

问题是,现在我遇到了另一个错误,例如:

“(某物)的绑定已在(某物)处配置。”

但那是另一个故事/线程/帖子......
谢谢,祝你好运!

于 2013-04-26T14:12:22.797 回答
1

有几件事-

  1. 您缺少 gerrit-plugin-api.jar。目前上游未提供此功能,因此您必须自己构建它。我相信mvn install从 Gerrit 存储库运行会将这个 jar 打包并添加到您的系统中。

  2. 你不想运行install,你只想package在插件上运行。 mvn package将 .jar 放在 target/ 文件夹中,然后将其复制到 Gerrit 安装中的 plugins 文件夹中。

祝你好运!

于 2013-04-26T01:26:40.810 回答
0

在顶层做 a mvn -P all clean install,而不是 inside gerrit-plugin-api

于 2013-04-29T06:15:15.197 回答
0

根据@Conaaando 的回答,我执行了这些确切的步骤并成功使用了该插件。步骤由http://asheepapart.blogspot.com/2013/12/how-to-build-gerrit-replication-plugin.html提供

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

您需要--recursive,因为插件实际上是 git 子模块,否则不会与您的 repo 一起克隆。

如果你已经克隆了,你可以运行git submodule init; git submodule update

cd gerrit
git checkout -b stable-2.7 origin/stable-2.7
mvn install -DskipTests=true -Dmaven.javadoc.skip=true

不需要跳过测试或生成 Java Doc,但它会大大提高你的编译时间并减少 maven 使用的内存量

cd gerrit-plugin-api
mvn package -Dmaven.javadoc.skip=true

这将创建复制插件构建所必需的 jar

cd plugins/replication
mvn package -Dmaven.javadoc.skip=true

至此,您已经编译并打包了复制jar!您现在需要做的就是在您的 Gerrit 服务器上注册它。为简单起见,我假设您的 gerrit 服务器运行在gerrit.example.com. 这些步骤将复制 jar 复制到您的审核服务器,然后指示审核服务器从该复制位置安装插件。

scp target/replication-2.7.jar gerrit.example.com:/tmp/
ssh -p 29418 gerrit.example.com gerrit plugin install -n replication /tmp/replication-2.7.jar
于 2013-12-04T09:26:47.847 回答
0

最快的修复方法是更改​​ pom.xml 并使用不是快照的版本。我试图为 stable-2.6 分支构建删除项目并面临同样的问题。所需要做的就是更改 Gerrit-ApiVersion:

     <Gerrit-ApiType>plugin</Gerrit-ApiType>
-    <Gerrit-ApiVersion>2.6-SNAPSHOT</Gerrit-ApiVersion>
+    <Gerrit-ApiVersion>2.6-rc2</Gerrit-ApiVersion>
   </properties>
   <name>Delete Project Gerrit Plugin</name>
于 2013-05-20T06:25:18.180 回答