相关疑难解决方法(0)

将协议缓冲区集成到Maven2构建中

我正在现有的,相当普通的Maven 2项目中试验Protocol Buffers.目前,每次我需要更新生成的源时,都会调用shell脚本.这显然是一个麻烦,因为我希望在每次构建之前自动生成源.希望不要诉诸可耻的hackery.

所以,我的问题是双重的:

  1. 远射:是否有Maven 2的"Protocol Buffers插件"可以以自动方式实现上述目标?谷歌代码上有一个分支,其作者似乎已经开始实施这样的插件.不幸的是,它没有通过代码审查或合并到protobuf主干.因此,该插件的状态是未知的.

  2. 可能更现实:缺少一个实际的插件,我怎么可能protoc从我的Maven 2版本调用?我想我可以将现有的shell脚本连接到antrun调用或类似的东西.

个人经历非常感谢.

maven-2 protocol-buffers

42
推荐指数
4
解决办法
3万
查看次数

用于处理protobuf的Eclipse插件

协议缓冲区(protobuf)是一种以高效且可扩展的格式编码结构化数据的方法.

有Netbeans 的插件,但我找不到Eclipse 的插件.它存在吗?如果是,请分享链接.

谢谢.

java eclipse eclipse-plugin protocol-buffers

16
推荐指数
1
解决办法
1万
查看次数

由protobuf生成的代码引起的Eclipse构建循环(与Maven Project Builder相关)

发展环境

我正在开发一个Maven Java客户端/服务器项目,该项目依赖于Protocol Buffers(protobuf)在客户端和服务器之间发送RPC.我使用Eclipse for Java EE作为我的主IDE.由于我在项目中使用Maven,因此我使用Eclipse 的m2eclipse插件.我在Eclipse中配置我的项目以使用"Maven Nature".

问题

基本上,通过上面描述的工作空间设置,如果Eclipse配置为自动构建(默认情况下为:项目菜单 - >自动构建),我将遇到INFINITE BUILD LOOPS.每当Eclipse旋转构建时,构建将进入无限循环,通常导致Eclipse消耗所有计算机的CPU资源,并且最终由于内存溢出而在IDE中出现错误弹出窗口.发生的事情是,.proto文件中生成的所有Java代码都是由Maven通过Eclipse构建不断构建的.一旦生成proto文件并将其编译到目录中(在我的例子中target/generated-sources),就会立即重复构建proto文件.即使我点击停止按钮,构建也会再次旋转.我能真正停止无限构建循环的唯一方法是自动禁用Build.

通过查看Web上的链接(请参阅此SOF帖子,也在下面列出),一种解决方法是在Eclipse项目中禁用Maven Project Builder.为此,我必须打开Eclipse项目设置 - >构建器 - >取消选择Maven Project Builder.现在,无限构建循环不会发生,似乎是因为m2eclipse的构建器是罪魁祸首.但是,我现在从此构建器中丢失了许多有用的功能.也就是说,我无法通过m2eclipse利用自动资源处理,例如资源过滤.请注意,使用Maven Nature的项目在Java Build Path中排除了资源目录(src/main/resourcessrc/test/resources),因为期望Maven Project Builder将它们添加到类路径中.因此,我在禁用Maven Project Builder时遇到的一个问题是我无法在测试中从类路径中读取资源文件.我必须首先运行一个手动maven构建来访问资源(但是一旦我刷新项目,我将无法再找到这些类路径资源).或者,我可以更改我的项目的Java Build Path,但这违背了Maven Nature的默认设置,除了依赖protobuf之外,它在所有Eclipse Java项目中都适用.

所以,所有人都说......

有谁知道如何解决这个问题?Eclipse平台似乎太成熟了,不能继续这个问题.我总是可以提交一个会收集灰尘的Eclipse bug,但也许它不是Eclipse的bug,而是我身边的错误配置.非常感谢您的帮助.

相关链接

java eclipse protocol-buffers m2eclipse maven

15
推荐指数
1
解决办法
2492
查看次数