如何快速生成(可能没有任何编码)System V init脚本来启动和停止使用mvn jetty:run
启动的Jetty实例的服务?
答案 0 :(得分:1)
我将在前言中说我已经搜索到了高低,最终必须为这个问题制定自己的解决方案。目前,我建议使用Apache Commons Daemon(由Tomcat使用),因为它提供了我尝试过的最好的守护进程行为,并且编写初始化脚本相当简单。但是,该解决方案并不能真正满足您快速实施的标准。
相反,对于不需要更改代码的更快的解决方案,您可以使用appassembler-maven-plugin。以下是基于实际产品的工作配置的示例pom。
以下配置是为unix sysadmins构建的。以下是一些需要注意的事项:
org.eclipse.jetty.xml.XmlConfiguration
启动jetty。我认为这大致相当于jetty:run
。此外,您可能希望打包生成的程序和依赖项,以便安装产品并使用“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。
答案 1 :(得分:-1)
你有Unix工具,如Automake,Autovonf,libtools,make和nmake,但要创建一个开始和停止的脚本我只知道这种方式:https://unix.stackexchange.com/a/20361