如何快速生成(可能沒有編碼任何內容)System V init腳本以啓動和停止使用mvn jetty:run
開始和停止Jetty實例的服務?爲mvn碼頭生成系統V初始化腳本:運行
回答
我將前言本說,我已搜查高和低,最終不得不制定我自己的解決方案來解決這個問題。目前,我推薦使用Apache Commons Daemon(由Tomcat使用),因爲它提供了我嘗試過的最好的守護進程行爲,並且可以合理簡單地編寫一個init腳本。但是,該解決方案實際上並不符合您快速實施的標準。
相反,對於不需要更改代碼的更快解決方案,您可以使用appassembler-maven-plugin。以下是基於實際產品工作配置的示例pom。
下面的配置是爲unix系統管理員構建的。這裏有一些值得注意的事情:
- 它啓動jetty使用基於xml的入口點爲碼頭,
org.eclipse.jetty.xml.XmlConfiguration
。我認爲這大致相當於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。
你有Unix的工具,比如Automake的,Autovonf,libtools,製作和NMAKE而是爲開始創建一個腳本,並停止我知道只有這樣說:https://unix.stackexchange.com/a/20361
像Automake,make這樣的工具與Maven,Java和init腳本無關。 –
- 1. 初始化腳本沒有運行系統重啓/關機
- 2. 以gce運行雲初始化腳本
- 3. 在Windows上,mvn碼頭:運行良好,但mvn碼頭:運行失敗
- 4. 初始化腳本掛起整個系統
- 5. Python腳本視頻系統不會初始化
- 6. 成本初始化
- 7. 運行Apache.Spark - 的log4j:WARN請初始化log4j的系統正常
- 8. 初始化rbenv和運行Ruby腳本shell腳本從shell腳本
- 9. 錯誤運行v腳本
- 10. Yocto:刪除System V初始化腳本的bbappend文件
- 11. 爲Suricata創建Bash初始化腳本
- 12. 涼亭:運行生成系統
- 13. 運行碼頭組成牧場操作系統
- 14. 在php腳本中爲聯繫人表單初始化javascript
- 15. SMP系統上的內核初始化
- 16. HTML5文件系統初始化
- 17. 配置系統無法初始化
- 18. 如何初始化文件系統?
- 19. 視頻系統未初始化pygame的
- 20. pygame.error:視頻系統未初始化
- 21. Log4J警告:初始化log4j系統
- 22. 配置系統無法初始化
- 23. 配置系統faild初始化,c#,vs2010
- 24. System.Configuration.ConfigurationErrorsException:'配置系統初始化失敗'
- 25. NLog配置系統初始化失敗
- 26. log4j:WARN請正確初始化log4j系統
- 27. pygame.error:視頻系統未初始化
- 28. 配置系統初始化失敗
- 29. Pygame - 攪拌機系統未初始化
- 30. mvn碼頭:碼頭集裝箱內運行分叉?
很好的答案,謝謝。 –