pom.xml中的maven-protoc-plugin配置不正确

时间:2013-07-24 18:23:30

标签: eclipse maven protocol-buffers

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

我的包版:我无法让插件正常工作。具体来说,我无法下载插件。 我使用Maven和Eclipse [Eclipse Java EE IDE for Web Developers,Version:Juno Service Release 1 构建ID:20120920-0800] 我已经将我添加到我的pom.xml中的配置的相关片段放在下面。有多个引用引导我进行此配置,但我不允许在此处发布它们。我试图以某种方式引用它们(以获取完整信息),并注意到每个问题:

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

  • 参考2:github HTTP位置(sergei-ivanov.github.io)有一个HTML 在maven-protoc-pluginSLASHproject-summary.html上有一个文件 下载无效的网址

  • 参考3:github位置(sergei-ivanov.github.io)有另一个HTML 文件位于/maven-protoc-pluginSLASHusage.html - 此网址包含一个代码段 它显示了以下配置:maven-protoc-plugin,
    maven-compiler-plugin和protobuf-java依赖。它不是 有一个插件存储库配置。

我的XML位于http://pastebin.com/VPyH3CPr

的pastebin上

我试图通过Eclipse Run Configuration使用以下命令在插件中运行目标:     目标:maven-protoc-plugin:protobufcompile     个人资料:dev

我收到以下消息: [INFO]扫描项目...... [警告]缺少com.google.protobuf.tools:maven-protoc-plugin:jar:0.3.1的POM,没有可用的依赖项信息 [警告]无法检索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)] - > [帮助1] 其他一些错误。 [错误] [错误]有关错误和可能解决方案的更多信息,请阅读以下文章: [错误] [帮助1]汇合/显示的URL / MAVEN / NoPluginFoundForPrefixException

问题:

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

2 个答案:

答案 0 :(得分:4)

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

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

然后,只需点击网站usage guide即可设置您的项目。

虽然我建议你坚持使用伊凡诺夫的叉子;如果您不需要工具链支持或其他贡献功能,Trott的repo仍然正常运行。

答案 1 :(得分:0)

关于问题3-5 ......

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

根据您提供的xml,当您尝试运行生命周期时,无法解决依赖关系的事实将导致错误。此外,您的目标之一也会导致错误,请参阅下文。

<强> 4。我对Maven相对较新,因此这个新手类型的问题:我可以像我一样(protobufcompile)定义插件的目标名称,还是Maven插件带有我无法更改的预定义名称? < / p> 不,你不能。目标由您使用的插件定义。阶段由maven定义,基本上只是build lifecycle

中的不同位置

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

有一些中央存储库,我不知道这些存储库,但它们基本上都可以容纳所有插件。

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