gpt4 book ai didi

java - 为基于 JVM 的项目创建助手 "scripts"

转载 作者:行者123 更新时间:2023-11-29 09:08:23 26 4
gpt4 key购买 nike

我习惯用 Python 编程。每当我创建一个项目时,通常会有一个bin/文件夹,里面存放着各种脚本,例如:

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

在 Scala(和 Java)中做这类事情的最佳实践是什么。自定义 maven 目标,也许?

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

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

最佳答案

我将阐明一些 Java 方面的内容。如果您使用 Maven,请从 Maven 可以生成的简单项目原型(prototype)开始。它将为您创建目录结构,您可以开始在其中添加内容。拥有用于脚本的 bin 目录非常好。也就是说,我仍然更喜欢在惯用的 Java 中创建模式之类的事情,而不是生成一些 SQL 文件。在我看来,从长远来看,它更安全、更可持续。 Hibernate,例如,使用注释,将在您初始化 hibernate session 后立即为您创建数据库/更新它,这样您就不必忙于生成模式并将该 sql 文件 checkin 您的 vcs 等。 Maven 确实有很多插件可以做你想做的事,所以那将是首选路线。如果他们不这样做,您始终可以让 maven 在 bin 目录中执行您的脚本之一。

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

关于java - 为基于 JVM 的项目创建助手 "scripts",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13627582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com