在java webapp / client中管理Web服务/ xml绑定的生成工件的最佳方法?
我正在研究一些使用JAXB绑定消息的Web服务(在JAX-WS或spring-ws中)。 使用这些绑定时,总会有一些代码从WSDL自动生成以绑定消息对象。 我正在努力找出能够完成这项工作的最佳方法,以便它易于使用,难以破解并与IDE很好地集成(主要使用eclipse)。
我认为有几种方法可以解决这个问题。 我现在看到的三个主要选项是:
- 生成代码,保留源工件并将其检入存储库。 优点:与IDE轻松集成(源代码突出显示等),在构建系统中工作。 缺点:每次重新生成时生成的代码都会更改,可能会创建嘈杂的提交。 它也是多余的,因为WSDL文件通常已经签入。
- 生成代码作为构建过程的一部分。 不要保留源工件或仅将它们保存在输出目录中。 优点:修复前一个缺点。 缺点:难以与IDE集成,但是这个构建步骤是否可以自动运行? 我目前在我的一个项目上使用它,但是第一次检查项目时它看起来很破碎,这是一个小麻烦。
- 将生成的绑定保存在maven或手动更新的jar中包含的单独库(jar)中,具体取决于您的构建过程。 我从java.net上的一个post中得到了这个想法。 这似乎更稳定,并使用显式版本,但似乎有点重量级。
您将实施哪些选项以及如何实施? 我们目前正在使用maven和eclipse,所以在这方面的任何想法都会很棒。 我认为这个问题可以概括为大多数其他构建系统和IDE组合,甚至可能是其他语言。
我将选择2并在“标准” ${project.build.directory}/generated-sources/
位置生成代码,作为构建过程的一部分。 m2eclipse很好地支持使用生成的源(一旦生成了源,就使用Maven>更新项目配置 ),如果我记得很清楚,也可以使用maven eclipse插件 (即文件夹将被添加到Java Build Path中 )。 实际上,我认为NetBeans也处理这个问题。 对于Idea不确定。
对于生成本身,如果我理解正确,您可能需要maven-jaxb2-plugin 。
我选择了3.如果你已经拥有自己的存储库(以及可选的CI),那就不是那么重量级了。 所需要的只是一个简单的POM。 甚至可以包含一些实用程序/包装器/构建器类(通常使生成的类使生活更容易)并在多个项目中使用它们。
- 如何从Eclipse中的另一个项目调用类?
- javax.el.PropertyNotFoundException:/demo.xhtml @ 24,55 value =“#{UserBean.favYear3}”:目标无法访问,标识符’UserBean’已解析为null
- 如何使用eclipse和bndtools将jar转换为OSGi包
- 试图使用SmbFileInputStream
- 通过eclipse调试视图分析线程
- 无法编写核心转储。 默认情况下,在客户端版本的Windows上未启用小型转储
- Eclipse中的null JavaCompiler
- 有没有办法删除Eclipse运行配置中的元数据?
- 这两个设置在maven中是否相同?