一种使用 Maven 构建工具在 Java 项目中将 plsql 部署到 Oracle 的方法
Posted
技术标签:
【中文标题】一种使用 Maven 构建工具在 Java 项目中将 plsql 部署到 Oracle 的方法【英文标题】:A way to deploy plsql to Oracle in Java project with Maven build tool 【发布时间】:2012-12-26 21:45:08 【问题描述】:我加入了 plsql 源代码开发并存储在 Oracle DB 中的项目。
有两个源副本 - 测试服务器和生产服务器。所以 SPOT(单点信任)规则被打破了。副本需要不时同步,并且此作业是手动执行的。
但最烦人的事情来自配置管理 - 我无法重现以前的工作项目副本,因为旧的 plsql 脚本丢失了(新版本的 API 发生了变化)。
研究完课题后,我发现了很棒的项目:https://code.google.com/p/plsqlmaven
通过关注https://code.google.com/p/plsqlmaven/wiki/Basics,我可以从 DB'es 中转储所有 plsql 脚本(以及生产和测试之间的差异):
$ mvn plsql:extract -Dforce但我坚持使用 plsql:deploy 命令(它打印有关缺少 jar 的错误,我不明白如何创建它)。我会尽快联系作者并填写一些错误报告。
但我希望社区已经解决了这个项目活力的基本任务。
如何在 Java 项目中将 plsql 脚本部署到 Oracle DB(我的项目使用 Maven 构建系统)?
PS 我在 oracle.com 上查看 SQL Developer 教程 - 我找不到如何通过一键单击来完全部署 plsql 文件层次结构。而且我更喜欢命令行解决方案...
PPS我向plsqlmaven项目报告相关错误:
https://code.google.com/p/plsqlmaven/issues/detail?id=4(需要将plsql文件部署到Oracle DB的教程。) https://code.google.com/p/plsqlmaven/issues/detail?id=5(请将 1.11 发布到 Maven 中心。) https://code.google.com/p/plsqlmaven/issues/detail?id=6 (plsql:extract 在 1.10 中默认将 plsql 代码转储到 src/main/java)PPPS我在http://rsdn.ru/forum/java/5011849.flat(俄语)提问
【问题讨论】:
考虑包含实际的错误文本。它们往往包含重要信息。 我明天回去工作时会这样做。 【参考方案1】:这是我喜欢使用flyway 的情况之一,因为它可以让您管理版本和脚本。
它在测试时也很方便,因为它可以让您将数据库播种到给定的状态。
【讨论】:
我很快就会寻找这个解决方案。我对 Oracle 支持很感兴趣。感谢您的回答!【参考方案2】:旧的好 SQL Plus 怎么样?创建将根据需要调用其他人的主脚本,并将其从命令行传递给sqlplus
(尽管您需要在机器上安装 Oracle 客户端)。 jisql 是一个命令行 java sql 工具 - 但不要认为它有调用子脚本的选项。使用 exec 插件从 maven 运行命令相当容易。
【讨论】:
这似乎是一个解决方案,但不是 Maven 方式...我向当地 Oracle 专家询问了 sqlplus 功能。感谢您的回答!【参考方案3】:我不会深入研究:
http://flywaydb.org http://www.liquibase.org/但似乎这些项目不仅为我的问题提供了解决方案,而且为其他相关问题提供了更复杂的解决方案。
两者都有 Maven 集成和开源。
【讨论】:
【参考方案4】:你应该使用 plsql:compile 而不是 plsql:deploy:
mvn -Pyourdbprofile plsql:compile
ps:如果您需要部署存档的方法,请查看 par。
【讨论】:
以上是关于一种使用 Maven 构建工具在 Java 项目中将 plsql 部署到 Oracle 的方法的主要内容,如果未能解决你的问题,请参考以下文章
Gradle Vs Maven:Java项目构建工具如何选择?