您在打包时是否遵循任何指导原则(java)?

您在打包时是否遵循任何指导原则(java)?,java,packages,Java,Packages,您是否遵循java打包中的任何设计准则 正确的包装是设计技巧的一部分吗?有关于它的文件吗 编辑:包如何相互依赖?循环包是否不可避免?与jar或war文件无关。打包通常与发布管理有关,一般指导原则如下: 一致性:当您在集成、预生产或生产环境中发布多个交付时,您希望它们以完全相同的方式组织(或“打包”) 少量文件:当您必须将一组文件从一个环境复制到另一个环境时,您希望复制尽可能多的文件,如果它们的数量合理(每个组件最多10-20个),您可以复制它们(即使这些文件的大小很重要) 因此,您希望为每个

您是否遵循java打包中的任何设计准则

正确的包装是设计技巧的一部分吗?有关于它的文件吗


编辑:包如何相互依赖?循环包是否不可避免?与jar或war文件无关。

打包通常与发布管理有关,一般指导原则如下:

  • 一致性:当您在集成、预生产或生产环境中发布多个交付时,您希望它们以完全相同的方式组织(或“打包”)

  • 少量文件:当您必须将一组文件从一个环境复制到另一个环境时,您希望复制尽可能多的文件,如果它们的数量合理(每个组件最多10-20个),您可以复制它们(即使这些文件的大小很重要)

因此,您希望为每个交付定义一个公共结构,如:

aDelivery/
    lib // all jar, ear, war, ...
    bin // all scripts used to launch your application: sh, bat, ant files, ...
    config // all properties files, config files
    src // all sources zipped into jars
    docs // javadoc zipped 
    ...

此外,所有这些公共目录结构都应该存储在一个公共存储库(VCS、maven repo或…)中,以便查询,而无需在每次需要时重新构建它们(如果您只有一个或两个交付组件,则不需要该组件,但如果您有40到60个交付组件,则完全重建是不可能的)。

您可以在此处找到大量信息:


Java打包的问题在于,它与您想要做的事情没有多大关系。例如,我喜欢遵循Eclipse惯例,将包标记为内部,但是我不能用“包”保护级别定义它们的类。

我尝试遵循的方法通常如下所示:

  • 有合理大小的包装。少于3类是奇怪的。少于10类是好的。超过30类是不能接受的。我通常对此不是很严格
  • 在包之间没有依赖循环。这很难,因为许多开发人员很难找到保持依赖循环自由的方法。但是这样做会梳理出代码中的许多隐藏结构。思考代码的结构变得更容易,也更容易发展代码

  • 定义层和模块,以及它们在代码中的表示方式。通常我会得到类似于
    的结果。通过可视化类、包、模块和层之间的依赖关系,这应该会有所帮助。

    你所说的“打包”是什么意思你的意思是将你的代码组织成包,或者构建JAR/等等吗?同意Andy的观点-这是关于源代码布局还是你作为应用程序发布的布局?