maven多模块项目,包含两个版本的protobuf



我们有一个多模块maven项目。其中一个模块有一堆.proto文件,我们将其编译为java文件。几乎所有其他模块都依赖于这个模块。它们中的大多数使用Protobuf 2.4,但有一个需要使用2.5。

有什么好方法吗?(不好的方法是将pom文件编辑为"2.5",构建一个jar,手动将该jar复制到我们需要的任何地方,然后将pom文件更改回2.4。(

从未使用过protobuf,但据我所知,它是一个生成东西的插件。

所以我要给你一个通用指针,希望它能有所帮助。我认为您应该尝试从单个模块中使用不同的分类器制作2个jar,请参阅https://maven.apache.org/plugins/maven-jar-plugin/examples/attached-jar.html例如分类器proto2.4和proto2.5然后,您可以在定义对该模块的依赖关系时添加分类器。

我看到的另一个选择是有两个模块,真正的一个,你现在有,另一个2.5从主模块生成一个zip,第二个模块将为空,但依赖于生成的zip,解压缩它,然后使用2.5的插件配置进行编译执行速度较慢,imho有点脏,但如果您需要更多的自定义而不仅仅是版本,则可能需要。

我终于让事情或多或少地按照我的意愿进行了。我用一个pom文件创建了一个新模块;pom文件引用原始模块的proto文件,但使用proto2.5编译器对其进行编译,并将结果放入自己的目录中。

最新更新