鉴于我们的maven projet为客户端提供了一些与它交互的api,那些只是很少的java接口,它们是在内部代码库中实现的......
现在,如果我们只是构建jar并发布它,任何人都可以看到我们用于实现的内部类,但是我们只需要发布很少的java接口(可能还有很少的DTO类)......
是否可以准确选择我们想要为哪些java文件构建jar并创建两个工件,如(product.jar / war和product-api.jar)
Prupose是为了限制其他团队可能滥用代码......
答案 0 :(得分:2)
最好是在Maven中创建单独的模块,代表您的模块:
project-api
只包含接口,可以由其他人单独使用。
project-impl
一个实施等 以上使得测试更容易等,在关注点分离方面是一个很好的选择。
答案 1 :(得分:1)
您的问题是关于保护代码而不是maven。您可以拥有多模块maven项目,但仍然有人可以下载并取消它。 很少有人认为Java确实有内置的机制来支持这个,但有一些解决方法...一些想法......