我们有一堆自动生成的类,主要是 Axis2 存根、骨架等。对于一些复杂的 wsdls,Axis2 生成大量的 java-bean、存根等。我确信使用自动生成时还有其他情况。

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

然而,在进行重构、清理等时,很难清除来自这些自动生成的类的警告。例如,如果我尝试清理代码以便使用 Java1.5 泛型,则没有好方法可以知道这些违规类中有多少是我们的,还是自动生成的。

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

编辑:我在下面的很多答案中看到“在构建过程中生成”。虽然我看到了这样做的好处,但我不太明白如何摆脱存储库签入。

我的代码对其中一些类有编译时依赖性,对我来说,开发期间的构建是 Eclipse 中的“ctrl-s”。我们使用 ant 脚本来生成编译、运行测试并生成可交付成果。

有帮助吗?

解决方案

您可以使用相同的软件包,但使用不同的源文件夹(类似产生-SRC),这是我们要做的。实际上,我对有关保存生成的代码的源代码库的整体思路栅栏。我们这样做,作为该项目的其他开发人员方便使用,但它通常是有意义的重新生成的源代码作为构建过程的一部分。如果该生成的代码是不可能改变,然后使用单独的项目,并产生一个罐子可能更为实用。

其他提示

最佳实践总结:

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

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

如果你正在他们检查到源控制系统,的的。请通过构建步骤他们获得重新生成。如果他们得到从WSDL产生,检查在WSDL,不生成的代码。

我建议具有生成步骤生成生成的代码完全独立的.jar,然后删除源文件,只是为了它不太可能,因为有可能是维护会尝试手工编辑自动生成的源。

这样,你的重构活动将看到自动生成的代码,如第三方库,而不是源被操纵。

对于每一组生成的工件的,创建一个新的项目,其执行产生,然后束伪影成JAR和源ZIP文件,然后从您的应用引用它们。保持整洁,单独的,并强调一个事实,即所生成的工件不是由IDE改变。

与行家和axistools-行家-插件,所生成的源是在一个不同的源文件夹地的“目标”的目录。这一目标目录是行家生成的所有文件和材料,因此它可以被清洗。结果 这是非常conviniened,因为生成的文件也出现在IDE内的不同源文件夹。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top