java - 什么是 java 控制台应用程序的良好部署目录结构

标签 java unix

我有一个 Java 控制台应用程序,我准备将其部署到 Unix 服务器上。我正在编写一个 shell 脚本来运行该应用程序。

我计划将我的 shell 脚本放在一个文件夹中,将我的应用程序 jar 和相关的 jar(spring 等)放在不同的文件夹中,并将属性文件(那些需要“实时”维护的文件)再次放在一个单独的文件夹中。然后我会让我的 shell 脚本遍历“jars”和“properties”文件夹中的文件,将它们附加到类路径,最后调用 java ...

这是一个“好的”部署结构吗?是否有关于如何安排文件以最大限度地提高可维护性和稳定性的指南?是否存在最好避免的明显“错误”方法?

我应该补充一点,对于以前的项目,我将所有 shell 脚本(那些启动 java 进程的脚本和那些不启动 java 进程的脚本)放入脚本文件夹,我的应用程序 jar 放入一个文件夹,库 jar 放在库子文件夹中和外部资源到配置子文件夹中。然后我写了一个脚本来显式加载所有文件。每当我升级一个库 jar 时,编写它就需要维护它。这一次我想做得更好。此外,感觉没有必要将我的应用程序 JAR 与库分开。

最佳答案

就其值(value)而言,这就是我们所使用的;

/
    /class
        //package hierarchy here, raw .class files
    /lib
        //library jars here, apache commons, gson etc, all .jars
    /conf
        //.properties files go here, including ones for libraries
    /doc
        //program documentation files, typically .txt
        /javadocs
            //java doc html root
    /sh
        //shell scripts including execute.sh and compile.sh

我们使用 ant 进行构建,如果需要,通常有一个 src 文件夹用于源代码树。这样您只需将 /class/lib 添加到您的类路径中,并且永远不会改变。

关于java - 什么是 java 控制台应用程序的良好部署目录结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13686463/

相关文章:

Java ArrayLists - 涉及比较

java - 语言检测器

c - 如果已经设置了警报, alarm() 的返回值是多少

python - 使用特殊情况处理在 Python 中实现递归复制

c - 设置进程中所有进程都可见的环境变量

java - Java 中的 HiLow 游戏

java - 使用java中的类对象创建通用列表

java - Adempiere 隐藏/显示字段基于使用显示逻辑在客户端窗口中选中或取消选中的刻度线

linux - 如何使用 diff (bash) 只显示不同的行

linux - 搜索一个字符串,得到结果后剪切该单词并将结果存储在变量中