我正在寻找一种工具来在 Linux 中将 java 服务器进程作为守护程序服务运行(可能在 Windows 和其他操作系统上)。在如何构建生产能力脚本和启动配置方面,我正在寻找最佳实践。
我熟悉项目构建的最佳实践,使用Apache Maven或Apache ANT + Ivy之类的东西来管理您的构建过程和管理外部依赖项以及构建工件和程序集。
在创建包含配置和启动脚本以及所有已编译代码和依赖项的项目程序集时,我不清楚最佳选择是什么。是否有一个很好的开源项目可以作为示例,它将服务包装器和配置脚本与其构建过程捆绑在一起?
我已经能够使用 Maven 和Jetty Launch 插件来运行我的 Web 应用程序,Terracotta Maven 插件来测试多个 JVM 集群服务器节点,我已经使用 Maven 的exec:java来运行我的自定义 Java 服务器,但我不是确保以这种能力使用 Maven 确实是“生产”质量,这也意味着我的生产服务器依赖于从源构建服务器并从可能不可用的服务器下载依赖项。
以下是我在 Java 服务启动器解决方案中寻找的一些潜在内容:
- 应该作为 Linux 服务或 Windows 服务进程运行
- 可以使用 Maven 插件或 Ant 脚本构建,并允许我处理配置文件和脚本
- 应该能够包含我项目的所有依赖项来自 Apache Ant
- 应该能够引入完整的 Java Web 应用程序服务器(例如 Jetty 7)并使用我的自定义 Web 应用程序的战争进行配置
- 应该能够处理标准的 Java 守护程序服务(自定义 Java 服务器)
我一直在研究的一些选项是Java Service Wrapper,它在Maven appassembler 插件中使用。
还使用 Maven 的程序集插件和自定义程序集描述符允许我定制构建输出。