赞
踩
1.点击idea右侧栏的maven 先点击clean(主要为了清除之前打包过的jar/war包 本项目讲的是打成jar包) 再双击package 如下:
2.本项目是将配置文件 业务代码 lib三个分别打包成三个文件的 便于在开发测试阶段频繁更改配置文件 重新部署项目时来回去更改 具体在pom文件中配置如下:
- <build>
- <finalName>case_center</finalName>
- <resources>
- <!-- Resource Filter -->
- <!--<resource>
- <directory>src/main/java</directory>
- <includes>
- <include>**/*.xml</include>
- </includes>
- </resource>-->
- <!--指定资源的位置-->
- <resource>
- <directory>src/main/resources</directory>
- </resource>
- <!--无法分离的jar包如果jar包不大可以选择直接打入源码jar包-->
- <!--<resource>
- <!–jar包路径–>
- <directory>${project.basedir}/libs</directory>
- <targetPath>BOOT-INF/lib/</targetPath>
- <includes>
- <include>**/*.jar</include>
- </includes>
- </resource>-->
- </resources>
- <plugins>
- <!--打包jar-->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <!--不打包资源文件-->
- <excludes>
- <exclude>*.**</exclude>
- </excludes>
- <archive>
- <manifest>
- <addClasspath>true</addClasspath>
- <!--MANIFEST.MF 中 Class-Path 加入前缀-->
- <classpathPrefix>lib/</classpathPrefix>
- <!--jar包不包含唯一版本标识-->
- <useUniqueVersions>false</useUniqueVersions>
- <!--指定入口类-->
- <mainClass>net.longjin.CaseModuleLocalJdbcApplication</mainClass>
- </manifest>
- <manifestEntries>
- <!--MANIFEST.MF 中 Class-Path 加入资源文件目录-->
- <!--本地依赖包需要手动 加入Class-Path ,否则无法找到-->
- <Class-Path>./resources/</Class-Path>
- </manifestEntries>
- </archive>
- <outputDirectory>${project.build.directory}</outputDirectory>
- </configuration>
- </plugin>
-
- <!--拷贝依赖 copy-dependencies-->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <outputDirectory>
- ${project.build.directory}/lib/
- </outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <!--拷贝资源文件 copy-resources-->
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-resources</id>
- <phase>package</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- </resource>
- </resources>
- <outputDirectory>${project.build.directory}/resources</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <!--spring boot repackage,依赖 maven-jar-plugin 打包的jar包 重新打包成 spring boot 的jar包-->
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <configuration>
- <!--重写包含依赖,包含不存在的依赖,jar里没有pom里的依赖-->
- <includes>
- <include>
- <groupId>null</groupId>
- <artifactId>null</artifactId>
- </include>
- </includes>
- <layout>ZIP</layout>
- <!--使用外部配置文件,jar包里没有资源文件-->
- <addResources>true</addResources>
- <outputDirectory>${project.build.directory}</outputDirectory>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>repackage</goal>
- </goals>
- <configuration>
- <!--配置jar包特殊标识 配置后,保留原文件,生成新文件 *-run.jar -->
- <!--配置jar包特殊标识 不配置,原文件命名为 *.jar.original,生成新文件 *.jar -->
- <!--<classifier>run</classifier>-->
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
- <!--<plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>-->
- <!-- tag::plugin[] -->
- <!-- end::plugin[] -->
- </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 如下图就成功启动了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。