3

我正在寻找一种工具来在 Linux 中将 java 服务器进程作为守护程序服务运行(可能在 Windows 和其他操作系统上)。在如何构建生产能力脚本和启动配置方面,我正在寻找最佳实践。

我熟悉项目构建的最佳实践,使用Apache MavenApache ANT + Ivy之类的东西来管理您的构建过程和管理外部依赖项以及构建工件和程序集。

在创建包含配置和启动脚本以及所有已编译代码和依赖项的项目程序集时,我不清楚最佳选择是什么。是否有一个很好的开源项目可以作为示例,它将服务包装器和配置脚本与其构建过程捆绑在一起?

我已经能够使用 Maven 和Jetty Launch 插件来运行我的 Web 应用程序,Terracotta Maven 插件来测试多个 JVM 集群服务器节点,我已经使用 Maven 的exec:java来运行我的自定义 Java 服务器,但我不是确保以这种能力使用 Maven 确实是“生产”质量,这也意味着我的生产服务器依赖于从源构建服务器并从可能不可用的服务器下载依赖项。

以下是我在 Java 服务启动器解决方案中寻找的一些潜在内容:

  1. 应该作为 Linux 服务或 Windows 服务进程运行
  2. 可以使用 Maven 插件或 Ant 脚本构建,并允许我处理配置文件和脚本
  3. 应该能够包含我项目的所有依赖项来自 Apache Ant
  4. 应该能够引入完整的 Java Web 应用程序服务器(例如 Jetty 7)并使用我的自定义 Web 应用程序的战争进行配置
  5. 应该能够处理标准的 Java 守护程序服务(自定义 Java 服务器)

我一直在研究的一些选项是Java Service Wrapper,它在Maven appassembler 插件中使用。

还使用 Maven 的程序集插件和自定义程序集描述符允许我定制构建输出。

4

2 回答 2

3

实现各种 Linux 服务的首选(又称“最佳实践”)方法是创建一个 shell 脚本,该脚本可以启动、停止和重新启动服务并将其放入/etc/init.d. 然后从相关的“rc.*”目录中添加适当的符号链接。有关“init(8)”、“chkconfig(8)”等,请参阅 Linux“man”条目。

于 2009-08-11T06:52:15.267 回答
3

Java Service Wrapper 似乎很常见。我见过一些人使用它,尤其是在nexus中。

于 2009-08-11T18:07:49.753 回答