当前位置:   article > 正文

Linux环境下java项目简单的部署_linux部署java项目不使用war包,使用编译后的class文件怎么部署

linux部署java项目不使用war包,使用编译后的class文件怎么部署

1.点击idea右侧栏的maven    先点击clean(主要为了清除之前打包过的jar/war包  本项目讲的是打成jar包) 再双击package    如下:

2.本项目是将配置文件  业务代码  lib三个分别打包成三个文件的     便于在开发测试阶段频繁更改配置文件  重新部署项目时来回去更改   具体在pom文件中配置如下:

  1. <build>
  2. <finalName>case_center</finalName>
  3. <resources>
  4. <!-- Resource Filter -->
  5. <!--<resource>
  6. <directory>src/main/java</directory>
  7. <includes>
  8. <include>**/*.xml</include>
  9. </includes>
  10. </resource>-->
  11. <!--指定资源的位置-->
  12. <resource>
  13. <directory>src/main/resources</directory>
  14. </resource>
  15. <!--无法分离的jar包如果jar包不大可以选择直接打入源码jar包-->
  16. <!--<resource>
  17. &lt;!&ndash;jar包路径&ndash;&gt;
  18. <directory>${project.basedir}/libs</directory>
  19. <targetPath>BOOT-INF/lib/</targetPath>
  20. <includes>
  21. <include>**/*.jar</include>
  22. </includes>
  23. </resource>-->
  24. </resources>
  25. <plugins>
  26. <!--打包jar-->
  27. <plugin>
  28. <groupId>org.apache.maven.plugins</groupId>
  29. <artifactId>maven-jar-plugin</artifactId>
  30. <configuration>
  31. <!--不打包资源文件-->
  32. <excludes>
  33. <exclude>*.**</exclude>
  34. </excludes>
  35. <archive>
  36. <manifest>
  37. <addClasspath>true</addClasspath>
  38. <!--MANIFEST.MF 中 Class-Path 加入前缀-->
  39. <classpathPrefix>lib/</classpathPrefix>
  40. <!--jar包不包含唯一版本标识-->
  41. <useUniqueVersions>false</useUniqueVersions>
  42. <!--指定入口类-->
  43. <mainClass>net.longjin.CaseModuleLocalJdbcApplication</mainClass>
  44. </manifest>
  45. <manifestEntries>
  46. <!--MANIFEST.MF 中 Class-Path 加入资源文件目录-->
  47. <!--本地依赖包需要手动 加入Class-Path ,否则无法找到-->
  48. <Class-Path>./resources/</Class-Path>
  49. </manifestEntries>
  50. </archive>
  51. <outputDirectory>${project.build.directory}</outputDirectory>
  52. </configuration>
  53. </plugin>
  54. <!--拷贝依赖 copy-dependencies-->
  55. <plugin>
  56. <groupId>org.apache.maven.plugins</groupId>
  57. <artifactId>maven-dependency-plugin</artifactId>
  58. <executions>
  59. <execution>
  60. <id>copy-dependencies</id>
  61. <phase>package</phase>
  62. <goals>
  63. <goal>copy-dependencies</goal>
  64. </goals>
  65. <configuration>
  66. <outputDirectory>
  67. ${project.build.directory}/lib/
  68. </outputDirectory>
  69. </configuration>
  70. </execution>
  71. </executions>
  72. </plugin>
  73. <!--拷贝资源文件 copy-resources-->
  74. <plugin>
  75. <artifactId>maven-resources-plugin</artifactId>
  76. <executions>
  77. <execution>
  78. <id>copy-resources</id>
  79. <phase>package</phase>
  80. <goals>
  81. <goal>copy-resources</goal>
  82. </goals>
  83. <configuration>
  84. <resources>
  85. <resource>
  86. <directory>src/main/resources</directory>
  87. </resource>
  88. </resources>
  89. <outputDirectory>${project.build.directory}/resources</outputDirectory>
  90. </configuration>
  91. </execution>
  92. </executions>
  93. </plugin>
  94. <!--spring boot repackage,依赖 maven-jar-plugin 打包的jar包 重新打包成 spring boot 的jar包-->
  95. <plugin>
  96. <groupId>org.springframework.boot</groupId>
  97. <artifactId>spring-boot-maven-plugin</artifactId>
  98. <configuration>
  99. <!--重写包含依赖,包含不存在的依赖,jar里没有pom里的依赖-->
  100. <includes>
  101. <include>
  102. <groupId>null</groupId>
  103. <artifactId>null</artifactId>
  104. </include>
  105. </includes>
  106. <layout>ZIP</layout>
  107. <!--使用外部配置文件,jar包里没有资源文件-->
  108. <addResources>true</addResources>
  109. <outputDirectory>${project.build.directory}</outputDirectory>
  110. </configuration>
  111. <executions>
  112. <execution>
  113. <goals>
  114. <goal>repackage</goal>
  115. </goals>
  116. <configuration>
  117. <!--配置jar包特殊标识 配置后,保留原文件,生成新文件 *-run.jar -->
  118. <!--配置jar包特殊标识 不配置,原文件命名为 *.jar.original,生成新文件 *.jar -->
  119. <!--<classifier>run</classifier>-->
  120. </configuration>
  121. </execution>
  122. </executions>
  123. </plugin>
  124. </plugins>
  125. <!--<plugin>
  126. <groupId>org.springframework.boot</groupId>
  127. <artifactId>spring-boot-maven-plugin</artifactId>
  128. </plugin>-->
  129. <!-- tag::plugin[] -->
  130. <!-- end::plugin[] -->
  131. </build>

 

 

3.将打包后的文件上传到Linux上    我的项目是放的路径为:home/hezhipeng/javaEE    然后输入命令切换到项目所在目录  命令为:cd /home/hezhipeng/javaEE


4.然后输入启动项目命令:nohup java -jar case_center.jar &(有的同学喜欢用命令java -jar a.jar &启动   这两个命令键的区别在于前者用nohup是放入后台运行,如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up),这种情况一般适合在生产环境长时间运行。 而用 java -jar a.jar &启动的话是直接启动jar文件,在当前会话进程中开启一个子进程来运行程序,这个子进程会随着会话进程的结束而结束。例如启动完之后按ctrl+c退出之后  启动项目随之停止了   两者最明显的区别在于前者不能立马明显的看到启动打印日志   后者则立马能看到启动的打印日志 )

5.再输入查询日志打印命令:tail -f nohup.out(这里可以指定打印日志的行数  命令:tail -200 nohup.out) 如下:

 

6.讲到这里我们的项目已启动了   但我们有时会遇到一个重复启动  端口号被占用的问题   会报如下错误:

7.碰到如上错误  首先我们查看服务器中运行的java进程  命令:ps -ef | grep java  如下图:

8.上图我们看到进程为12144的已被启动占用了    然后我们输入命令杀死进程  命令:kill -9 12144   再次输入查看java进程的命令:ps  -ef | grep java 会发现进程已被停止

9.再次输入启动项目命令:nohup java -jar case_center.jar &   然后查看打印日志  命令: tail -200 nohup.out   如下图就成功启动了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/282805
推荐阅读
相关标签
  

闽ICP备14008679号