我有几个接口(例如mypackage.IMyInterface
),它们在多个软件模块中实现。另一方面,我使用构建脚本将这些模块放在单独的jar文件中(出于版本控制的原因)。
它会"好吗"在每个单独的jar文件中包含相同的接口。
让自己完全清楚。包mypackage
将包含在所有jar文件中,并且它们都将具有完全相同的mypackage\IMyInterface.class
文件的副本。
我在一些开源jar文件中看到了这种做法。但我不确定这是好的做法还是偶然发生。
答案 0 :(得分:2)
这是一种不好的做法。
不应在不同的罐子之间共享包裹。
至少不应在多个罐子中复制接口(或类)。
最好是提取公共接口(和类)并将它们放在一个单独的jar中,然后在任何地方导入该jar。
所以从这种情况出发:
mylibfirst.jar (jar1):
com.mygroup.mylib.MyCommonInterface
com.mygroup.mylib.MyClass1
mylibsecond.jar (Jar2):
com.mygroup.mylib.MyCommonInterface
com.mygroup.mylib.MyClass2
以下内容:
mylibfirst.jar (Jar1,使用 mylib.jar ):
com.mygroup.mylib.first.MyClass1
mylibsecond.jar (Jar2,使用 mylib.jar ):
com.mygroup.mylib.second.MyClass2
mylib.jar (Jar3):
com.mygroup.mylib.MyCommonInterface