如何构建可变大小的数组?
几年后,有时会发生某个应用程序足够稳定以致进入Hibernate模式的情况。 尽管它已被使用和有用,但它没有任何变化,它可以愉快地运行。 然后,过了一会儿,有人决定再次添加一些新功能。 除了找到源代码之类的简单事情之外,最重要的事情之一就是能够构建应用程序。 尽管看似微不足道,但仍有一些事情要考虑。 以下是有关如何使应用程序可以永久构建的一些建议。
我将以Maven为例,但以下建议可应用于任何构建工具。
不可变的插件版本
对于依赖关系,Maven需要设置版本。 对于插件,Maven不允许指定它。 在这种情况下,它将获取最新的。
尽管始终使用最新版本可能会有所帮助,但它可能会破坏现有行为。
规则1始终明确设置插件版本。 这包括在构建期间使用的所有插件,即使未配置它们,例如maven-surefire-plugin。
签入构建工具
可能出现的第二个问题是构建工具本身。 用来构建应用程序的Maven版本是什么? 使用其他版本构建应用程序可能无法正常工作。 更糟糕的是,以与预期的副作用稍有不同的方式构建应用程序。
因此,必须将构建工具保存在应用程序的源代码中。 在Maven生态系统中,这可以使用Maven包装器来完成。
规则2获取包装器将其与常规资源一起检查并用于每个构建
签入JVM选项
当使用MVN_OPTS
环境变量调整JVM选项时,将发生最后一步。 它可用于初始化构建的最大内存量, 例如 -XmX
或将系统属性传递给构建, 例如 -Dmy.property=3
。 此类参数应在.mvn/jvm.config
文件中设置,并在应用程序源中检入,而不是使用MVN_OPTS
环境变量。 请注意,此功能自Maven 3.3.1起可用。
规则3通过.mvn / jvm.config文件以及常规源检入JVM构建选项
检入CI构建文件
与连续集成服务器相关的构建文件也应被检入。 对于某些人-Travis CI,GitLab等,这是一个非常标准的做法。 对于其他人-詹金斯(Jenkins),这是一个全新的功能。
规则4沿常规源检入CI服务器特定的构建文件。
很高兴有
结论
确保将来能够构建您的应用程序并不是一项艰巨的任务。 但是,它将在将来产生巨大的变化。 遵循上述规则,经过长时间Hibernate后,您能够构建应用的机会将大大增加。
如何构建可变大小的数组?