🎈个人主页:靓仔很忙i
💻B 站主页:👉B站👈
🎉欢迎 👍点赞✍评论⭐收藏
🤗收录专栏:Springboot
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!
项目打包
无pom的jar打包(第三方jar)
问题:
在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包,这时没办法通过pom直接引入,那么该怎么解决呢?
`解答:
一般有两种方法:
- 是将本地jar包安装在本地maven库
- 是将本地jar包放入项目目录中
这篇文章主要讲第二种方式,这又分两种情况,一种是打包jar包,第二种是打包war包
打为jar包
在项目目录中创建个文件夹用来存放jar包
pom文件中加入如下内容
<dependency>
<groupId>com.ckfinder</groupId>
<artifactId>json-lib</artifactId>
<version>2.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/jar/json-lib-2.3-jdk15.jar</systemPath>
</dependency>
groupId,artifactId,version可随便写
这时候在项目中运行是没问题了,但是使用命令mvn clean package打包之后BOOT-INF\lib里面并没有json-lib-2.3-jdk15.jar包,还需要pom文件中做如下配置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
之后再使用mvn clean package打包就OK了
打为war包
war包的目录如下:
war包在WEB-INF/lib目录下
使用mvn clean package命令打包时需要在pom文件加入以下内容
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<webResources>
<resource>
<directory>src/main/resources/jar/</directory>
<targetPath>WEB-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
Docker发布
环境搭建
新建springboot
:springboot实战—2.快速搭建web系统
docker插件安装:
File–Settings–Plugins–docker–Install
配置docker:
镜像制作
DockerFile
在src同级目录下,新建Dockerfile文件,内容如下:
FROM openjdk:8
MAINTAINER xlwang
ADD target/demo-0.0.1-SNAPSHOT.jar test.jar
ENTRYPOINT ["java","-jar","/test.jar"]
pom.xml编辑
(plugin标签位于下的下的)
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<dockerHost>http://47.107.71.52:2375</dockerHost>
<imageName>xlwang/${project.artifactId}</imageName>
<imageTags>
<imageTag>${project.version}</imageTag>
</imageTags>
<forceTags>true</forceTags>
<dockerDirectory>${project.basedir}</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
idea上传docker
maven编译并上传
clean package -Dmaven.test.skip=true
底部操作
Linux运行程序
shell脚本简易封装
#!/bin/sh
#需要定时重启程序的绝对路径
RESOURCE_NAME=/root/wt-admin-1.0.0.jar
#查找进程号
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|awk '{print $2}'`
if [ ${tpid} ]; then
echo ${tpid}
echo 'Stop Process...'
#杀死进程
kill -9 $tpid
fi
sleep 5
echo $! > tpid
#重新启动程序
nohup java -jar /root/wt-admin-1.0.0.jar &
echo Start Success!
#新的进程号
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|awk '{print $2}'`
echo ${tpid}
用户导出配置文件
jar xf wisdom-classroom.jar BOOT-INF/classes/application.yml
java -jar 用法
java -jar xxx.jar --spring.config.location=$VAR_CONF_DIR --spring.config.additional-location=$VAR_CONF_DIR/application-druid.yml,$VAR_CONF_DIR/application.yml --spring.profiles.active=prod --logging.file.path=$VAR_LOG_DIR > $VAR_STDOUT_FILE 2>&1 &