简单介绍下背景,项目使用的spring-boot框架,在平时开发中是通过jar包部署来开发的,但是在服务器上得使用war包来部署,这里简单记录下出现的问题,包括打包、环境安装(服务器没有需要的环境)等。
这类的资料非常多,但是可能直接拿过来并不一定能使用,总是会出现这样那样的问题。
需要修改的地方有两个:pom.xml
主入口函数
<build>
<plugins>
<!-- <plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<finalName>***</finalName>
<mainClass>***</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>ture</fork>
</configuration>
</plugin>
支持maven打包自定义名字 -->
<!-- war包支持 --->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>ByyTeaching</warName>
</configuration>
</plugin>
</plugins>
</build>
//打war包,使用这个
public class ByyTeachingApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(ByyTeachingApplication.class, args);
}
protected SpringApplicationBuilder configure(SpringApplicationBuilder
builder) {
return builder.sources(ByyTeachingApplication.class);
}
}
//平时开发使用这个
//public class ByyTeachingApplication {
//
// public static void main(String[] args) {
// SpringApplication.run(ByyTeachingApplication.class, args);
// }
//}
我是直接通过maven命令来打包的,在项目目录下打开cmd命令窗口执行mvn package -f pom-war.xml
就好啦。
打包过程中出现了个问题,是由于在pom.xml中build下的plugin没有注释掉导致的。
由于服务器一直都是使用的jdk7
和 tomcat7
,但是spring-boot
需要jdk8 和 tomcat8
,所以,环境需要重新搭建,但是又不能把原来的删掉,要同时保留。
思路很简单:跑一个tomcat8,然后指定jdk目录就可以了。
下载完成后,将jdk 扔到服务器上解压,然后..就不用管了,记住路径,后面使用。
tomcat8 上传解压,然后需要修改几个文件,指定jdk版本,同时还需要修改端口号(注意不要冲突)。
修改三个文件,将以下命令放在文件开头即可。(catalina.sh
startup.sh
setclasspath.sh
)
export JAVA_HOME=/usr/local/jdk1.8.0_60
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
端口修改,这里就不多说了。
在启动后发现了一个报错,由于jar包缺少导致的,把其他项目相关的jar包复制到这个项目就好啦.一个jstl的jar包
.
顺便强化下部署过程中使用的几个命令:
unzip xxx.zip //解压
unzip -o xxx.zip // 解压并覆盖。
./shutup.sh //关tomcat
ps -ef|grep 端口 //查看进程中使用的端口
netstat -lnt | grep 9000 //查看端口冲突
tail -f ./catalina.out //跟踪日志
基本上就这几个啦。
转载请注明出处: https://chrunlee.cn/article/java-spring-boot-linux.html