我被要求查看现有基于服务的应用程序的构建过程。它有几个基于服务的模块,其中一些服务由第三方提供。构建过程中使用的 wsdls 通过 http 下载并进入构建。为了竞争力,我使用 maven 3 和 axistools-maven-plugin 从 wsdl 生成类。
这让我开始思考。如果远程服务器关闭,我的构建将失败。如果 wsdl 更改我的构建也可能失败。我想要这个吗?远程 wsdl 在 service/wsdl 名称中进行了版本控制,因此不应对 API 进行重大更改,但它们是第 3 方,我不能真正依赖此约定。
在本地下载 wsdl 并针对受源代码控制的文件进行构建不是更好吗?然后我将有一个适当的可重复构建,而不会有远程服务器不可用的危险。不过,这似乎不是很敏捷。如果我采用这种方法,那么我如何知道远程 wsdl 中的任何变化?
我确信我不是第一个想知道从 wsdls 构建的最佳实践的人。任何人都可以强调什么机制被认为是从远程 wsdls 生成的服务生成可重复构建的最佳实践方式?