为基于 JVM 的项目创建帮助程序"scripts"



我习惯于用Python编程。每当我创建一个项目时,通常都有一个bin/文件夹,其中保存着各种脚本,例如:

  • 从ORM创建数据库模式
  • 基于其他内容生成一些代码(css、javascript等)
  • 以图形方式可视化某些数据的脚本

在Scala(和Java)中做这种事情的最佳实践是什么也许是自定义专家目标?

我读过,有sbt任务,但它们不能使用应用程序本身的编译库。

更新:这是一个地方,它说我不能使用构建的应用程序代码:sbt任务classpath

我将对java方面进行一些介绍。如果您正在使用Maven,请从Maven可以生成的简单项目原型开始。它将为您创建目录结构,您可以开始在其中添加内容。有一个用于脚本的bin目录是非常好的。也就是说,我仍然更喜欢用惯用的Java来创建模式,而不是生成一些SQL文件。在我看来,从长远来看,它更安全、更可持续。例如,Hibernate会使用注释为您创建数据库/在您初始化Hibernate会话后立即更新数据库,这样您就不必在生成模式和将sql文件签入到vcs等方面遇到麻烦。Maven确实有很多插件可以做您想做的事,所以这将是首选的途径。如果没有,您可以始终让maven在bin目录中执行其中一个脚本。

例如,在我的API项目中,当servlet初始化时,我创建/更新Cassandra键空间和列族。通过这种方式,您知道您的数据存储将始终是最新的(前提是每个人都将自己的更改/更新添加到init方法中)。这消除了所有杂耍。。。"糟糕,它不起作用"……哦,那是因为你没有创建列族……从我们的git中获取该文件……但它可能不是最新的,所以请CassandraGuy为你导出最新的架构,然后将其导入到你的cassandra实例中"这并不能解决所有问题。"。人们仍然需要遵守纪律,思考自己正在做出的改变。如果有人决定在init中为具有数百万行的现有MySQL表添加索引,请记住,在init完成索引创建时,它肯定会锁定该表。。。这些情况仍然需要代码审查、计划等

最新更新