将spring boot项目打包成jar部署到linux上就可以通过ip地址访问该项目
一.将项目打包成jar(IDEA)
由于项目要设置访问端口号,这里来说一下spring boot项目怎么设置端口号
如图所示:
在application.properties这个文件中加入(端口多少由你自己设置,笔者的是8203)
#设置端口号
server.port = 8203
二、打包的一个难题(笔者很不辛第一次部署jar就遇到这个问题,maven中央仓库没有第三方jar包,只有本地才有,本地部署没问题,如何将这个第三方jar导入项目的jar中)
项目中想要使用本地的jar包的时候,我们在编译器中可以导入,并且在打包成war包的时候也能打入进去,但是将项目打包成jar包的时候 却无法打入。因为jar包中 jar的文件打包在了BOOT-INF中。由于oracle的oraclejdbc.jar在maven中央仓库找不到,所以笔者就用此第三方jar做示例。直接将项目打成jar是没有导入oraclejdbc.jar如下图
这里可以看到将项目直接打包是没有oraclejdbc.jar的,所以我们应该通过在maven的pom.xml文件中配置相关依赖。
maven中的jar包全部在这里,所以我们在使用本地jar包的时候,要告诉maven打包之后要将本地jar包放在哪。需要的配置如下:${basedir}代表项目地址,systemPath就是jar包存放的位置,scope作用域必须为system(代表本地jar包),其他的自己随便编写
<dependency>
<groupId>com.collagensdk</groupId>
<artifactId>collagensdk</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/lib/collagensdk.jar</systemPath>
</dependency>
这是笔者的pom.xml(笔者的项目路径:D:/IDEA/IDEAWorkSpace/zabbix即${basedir})
如图:
代码如下:
<dependency>
<groupId>com.oraclejdbc</groupId>
<artifactId>oraclejdbc</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<!--<systemPath>D:/jar/oraclejdbc.jar</systemPath>-->
<systemPath>D:/IDEA/IDEAWorkSpace/zabbix/src/main/webapp/lib/oraclejdbc.jar</systemPath>
</dependency>
详图:
然后再pom的build中添加节点
<resources>
<resource>
<directory>${basedir}/src/main/webapp/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<filtering>false</filtering>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
这是笔者的pom.xml文件
如图:
代码如下:;
<resource>
<directory>D:/IDEA/IDEAWorkSpace/zabbix/src/main/webapp/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<filtering>false</filtering>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
详图:
笔者完整的pom.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.luozhiyuan</groupId>
<artifactId>zabbix</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>zabbix</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mysql-->
<!-- mysql连接 -->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<dependency>
<groupId>com.oraclejdbc</groupId>
<artifactId>oraclejdbc</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<!--<systemPath>D:/jar/oraclejdbc.jar</systemPath>-->
<systemPath>D:/IDEA/IDEAWorkSpace/zabbix/src/main/webapp/lib/oraclejdbc.jar</systemPath>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<!--将src/main/webapp下的页面编译到META-INF/reources中-->
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<resource>
<directory>D:/IDEA/IDEAWorkSpace/zabbix/src/main/webapp/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<filtering>false</filtering>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
到此pom.xml配置完毕
三、用IDEA将项目打包成jar
1.点击该处
2.双击
3.成功如图所示:
4.生成的jar在
oraclejdbc.jar已经生成在项目的jar中。如图:
四、将jar上传到linux服务器
用CRT连接linux服务器,选定一个地方(笔者将项目放在了:/usr/local/src/zabbix),在该路径下上传文件
上传命令:rz
找到本地存放的刚才打包的项目jar,笔者直接将项目的jar复制到本地电脑桌面
成功上传:
五、运行项目jar
linux命令:(nobup命令详解:https://www.cnblogs.com/baby123/p/6477429.html)
命令:nohup java -jar zabbix-0.0.1-SNAPSHOT.jar
zabbix-0.0.1-SNAPSHOT.jar是笔者的项目jar,主要修改成你自己的
成功结果:
如果要看项目的相关日志:
命令:tail -500f nohup.out
这个文件nohup.out与项目的jar同一级路径
到这里,项目的jar已经成功的部署在linux服务器了。ok啦