放置自动生成代码的好地方?

Kap*_*psh 3 java axis axis2 code-generation

我们有一堆自动生成的类,主要是Axis2存根,骨架等.对于一些复杂的wsdls,Axis2生成一个java-beans,stubs等的TON.我确信在使用自动生成时还有其他情况.

现在我们将它们视为代码库的其他第一类成员,它们存储在相同的包中.

但是,在进行重构,清理等操作时,很难清除来自这些自动生成的类的警告.例如,如果我试图清理代码以便使用Java1.5泛型,那么就没有什么好方法可以知道这些违规类中有多少是我们自动生成的.

我应该将这些自动生成的零件分离到不同的包装中吗?你们如何将这些工件存储在存储库中?

编辑:我在下面的相当多的答案中看到"在构建过程中生成".虽然我看到了这样做的好处,但我不知道如何摆脱存储库检查.

我的代码对这些类中的某些类具有编译时依赖性,对我来说,开发期间的构建是eclipse中的"ctrl-s".我们使用ant-scripts生成编译,运行测试并生成可交付成果.

Chr*_*ava 7

最佳实践摘要:

  • 使其可重复
    • 创建生成的代码作为构建过程的一部分.
    • 不要将生成的代码检查到源代码管理中.(请检查源代码.例如WSDL)
  • 将生成的代码与托管代码分开
    • 使用不同的源文件夹生成输出.
    • 提供单独的.jar,以便生成的代码成为依赖项.
    • 考虑使用不同的IDE项目(或maven模块)


Aar*_*lla 6

我把这些文件放到了自己的项目中.这样,我可以在一个地方添加构建文件,我需要的所有补丁等,并关闭生成代码的所有警告.


Fra*_*vel 6

您可以保留相同的包,但使用不同的源文件夹(类似generate-src),这就是我们所做的.我实际上是关于在源代码库中保存生成的代码的整个想法.我们这样做是为了方便项目中的其他开发人员,但通常在构建过程中重新生成源代码是有意义的.如果生成的代码不太可能改变,那么使用单独的项目并生成jar可能更实用.