gpt4 book ai didi

linux - 为 mvn jetty :run 生成 System V 初始化脚本

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:21 25 4
gpt4 key购买 nike

如何快速生成(可能无需编写任何代码)System V 初始化脚本来为使用 mvn jetty:run 启动的 Jetty 实例启动和停止服务?

最佳答案

首先我会说,我已经进行了高低搜索,最终不得不制定我自己的解决方案来解决这个问题。目前,我推荐使用 Apache Commons Daemon (由 Tomcat 使用)因为它提供了我尝试过的最好的守护进程行为,并且可以相当简单地为其编写初始化脚本。但是,该解决方案并不能真正满足您快速实现的标准。

相反,对于不需要更改代码的更快的解决方案,您可以使用 appassembler-maven-plugin .这是基于实际产品的工作配置的示例 pom。

下面的配置是为 unix 系统管理员构建的。这里有一些注意事项:

  • 它使用 jetty 的基于 xml 的入口点 org.eclipse.jetty.xml.XmlConfiguration 启动 jetty 。我认为这大致相当于 jetty:run
  • 类路径中的/etc/my-jetty-server 以便可以将jetty.xml 或web.xml 等配置文件放在那里。
  • jsw 的启动日志写入/var/log/my-jetty-server。

此外,您可能想要打包生成的程序和您的依赖项,以便您可以安装您的产品并使用“service my-jetty-server start”或您的操作系统的等效项启动它。您可以使用 maven-assembly-plugin 来做到这一点但这有点超出了这个问题的范围。

  <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>generate-jsw-scripts</id>
<phase>package</phase>
<goals>
<goal>generate-daemons</goal>
</goals>
</execution>
</executions>
<configuration>
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
<target>${project.build.directory}</target>

<daemons>
<daemon>
<id>my-jetty-server</id>
<mainClass>org.eclipse.jetty.xml.XmlConfiguration</mainClass>

<generatorConfigurations>
<generatorConfiguration>
<generator>jsw</generator>
<includes>
<include>linux-x86-32</include>
<include>linux-x86-64</include>
</includes>
<configuration>
<property>
<name>configuration.directory.in.classpath.first</name>
<value>/etc/my-jetty-server</value>
</property>
<property>
<name>wrapper.logfile</name>
<value>/var/log/my-jetty-server/out.log</value>
</property>
</configuration>
</generatorConfiguration>
</generatorConfigurations>
<platforms>
<platform>jsw</platform>
</platforms>
</daemon>
</daemons>
</configuration>
</plugin>

我上面的示例使用插件的 1.3 版本,但 1.8 是本文的最新版本。我希望最新版本应该适用于此配置,但我宁愿发布过时但我知道有效的内容。该插件的文档在此处有更多示例 http://mojo.codehaus.org/appassembler/appassembler-maven-plugin/usage_jsw.html .

关于linux - 为 mvn jetty :run 生成 System V 初始化脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23368569/

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