3

我正在解决的问题:我需要一个用于 Protobuf 的 Maven 插件,并且从我的谷歌搜索中,我得出的结论是 maven-protoc-plugin 目前最受关注。该插件的最新活动是在 2013 年 3 月,这也非常令人鼓舞(链接:https ://code.google.com/p/protobuf/issues/detail?id=476 )

我的障碍:我无法让插件工作。具体来说,我无法下载插件。我将 Maven 与 Eclipse 一起使用 [面向 Web 开发人员的 Eclipse Java EE IDE,版本:Juno Service Release 1 Build id: 20120920-0800] 我已将我添加到 pom.xml 中的相关配置片段放在下面。有多个参考资料导致我使用此配置,但我不被允许在此处发布它们。我试图以某种方式引用它们(以获得完整信息)并注意到它们中的每个问题:

  • 参考 1:在 github (github.com) 上有一个位置
    sergei-ivanovSLASHmaven-protoc-plugin - 这具有
    插件存储库的配置,但此资源中提到的 URL 是 404 资源

  • 参考 2: github HTTP 位置 (sergei-ivanov.github.io) 在 maven-protoc-pluginSLASHproject-summary.html 有一个 HTML 文件,该文件的
    下载 URL 也不起作用

  • 参考 3:github 位置 (sergei-ivanov.github.io) 在 /maven-protoc-pluginSLASHusage.html 处有另一个 HTML 文件 - 此 URL 有一个片段显示了以下配置:maven-protoc-plugin、
    maven-compiler-插件和 protobuf-java 依赖项。它没有
    插件存储库配置。

我的 XML 在http://pastebin.com/VPyH3CPr上的 pastebin 上

我正在尝试通过 Eclipse 运行配置使用以下命令在插件中运行目标: 目标:maven-protoc-plugin:protobufcompile 配置文件:dev

我收到以下消息: [INFO] 正在扫描项目... [WARNING] com.google.protobuf.tools:maven-protoc-plugin:jar:0.3.1 的 POM 丢失,没有可用的依赖信息 [WARNING] 无法检索插件描述符com.google.protobuf.tools:maven-protoc-plugin:0.3.1:插件 com.google.protobuf.tools:maven-protoc-plugin:0.3.1 或其依赖项之一无法解析:[错误]否在当前项目和插件组 [org.apache.maven.plugins, org.codehaus.mojo] 中找到前缀 'maven-protoc-plugin' 的插件,可从存储库 [local (C:\Users\.m2\ repository), all-repos (/artifactory/all-repos)] -> [Help 1] 这里的一些其他错误。[ERROR] [ERROR] 有关错误和可能解决方案的更多信息,请阅读以下文章:

问题:

  1. 我可以获得需要添加到 POM 以使 maven-protoc-plugin 工作的完整 XML 片段吗?
  2. 我列出的参考文献中的插件​​存储库位置似乎是死胡同。那么,我可以从哪里获取插件的有效位置是什么?
  3. 或者,有人可以建议我的 XML 有什么问题吗?错误输出显示我的配置在插件解析期间没有效果。
  4. 我对 Maven 比较陌生,因此这个新手类型的问题:我可以像我一样为插件定义目标名称(protobufcompile)还是 Maven 插件带有我无法更改的预定义名称?
  5. 与此条目中的主要问题切线相关:我的 .m2 目录是在我创建 Maven 项目时创建的,并且其中的所有内容都是自动填充的。我的问题是:Maven 从哪里获取它在 settings.xml 文件中配置的存储库位置?
4

2 回答 2

4

如果您想要最初由 David Trott 维护的 maven-protoc-plugin的Sergei Ivanov fork,只需下载 Ivanov 的版本之一,例如0.3.1并手动安装。

cd maven-protoc-plugin-maven-protoc-plugin-0.3.1
mvn clean install

然后只需按照站点使用指南设置您的项目。

虽然我确实建议您坚持使用 Ivanov 的叉子;如果您不需要工具链支持或其他贡献的功能,Trott 的repo仍在运行中。

于 2013-07-24T20:00:25.367 回答
0

关于问题 3-5...

3. 或者,有人可以建议我的 XML 有什么问题吗?错误输出显示我的配置在插件解析期间没有效果。

根据您提供的 xml,当您尝试运行生命周期时,您无法解析依赖项这一事实将导致错误。您的一个目标也将导致错误,请参见下文。

4. 我对 Maven 比较陌生,因此这个新手类型的问题:我可以像我一样为插件定义目标名称(protobufcompile)还是 Maven 插件带有我无法更改的预定义名称?

不,你不能。目标由您使用的插件定义。阶段由 Maven 定义,基本上只是构建生命周期中的不同位置

5. 与本条目中的主要问题切线相关:我的 .m2 目录是在我创建 Maven 项目时创建的,并且其中的所有内容都是自动填充的。我的问题是:Maven 从哪里获取它在 settings.xml 文件中配置的存储库位置?

有几个中央存储库,我不知道,但它们基本上包含所有插件。

您还可以拥有个人企业通常拥有的私有存储库。

于 2013-07-24T20:22:26.383 回答