赞
踩
公司项目架构是SpringCloud微服务,单个模块是SpringBoot,由于SpringBoot项目内置Tomcat容器,所以打包时打成Jar包,部署到Linux服务器后用命令java -jar (jar包的包名)xxxx.jar
启动即可。
1. 9种生命周期
SpringBoot打成jar包我们一般使用spring-boot-maven-plugin
这个插件
clean
:清理,在进行真正的构建之前进行一些清理工作,移除所有上一次构建生成的文件。执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件。
validate
:验证,验证工程是否正确,所需的信息是否完整。
compile
:编译源码,编译生成class文件。编译命令,只编译选定的目标,不管之前是否已经编译过,会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。
test
:单元测试,测试。
package
:打包,将工程文件打包为指定的格式,例如JAR,WAR等。这个命令拥有compile命令的功能进行编译,同时会在target目录下生成项目的jar/war文件。如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错,因为找不到所依赖的b项目,说明a项目在本地仓库是没有找到它所依赖的b项目,这时就用到install命令了。
verify
:核实,检查package是否有效、符合标准。
install
:安装至本地仓库,将包安装至本地仓库,以让其它项目依赖。该命令包含了package命令功能,不但会在项目路径下生成class文件和jar包,同时会在你的本地maven仓库生成jar文件,供其他项目使用。如果a项目依赖于b项目,那么install b项目时,会在本地仓库同时生成pom文件和jar文件,解决了上面打包package出错的问题。
build
:功能类似compile,只是只对整个项目进行编译。
site
:站点,生成项目的站点文档。
deploy
:复制到远程仓库。
2. 最常用的两种打包方法
clean,package
,(如果报错,很可能就是jar依赖的问题);clean,install
。3. 打包时跳过Test测试类
对于SpringBoot打成的jar,我们想要在服务器上运行,只需要服务器有JDK即可,因为SpringBoot自带Tomcat。
在服务器上运行打成的jar包,一般我们只需要执行:java -jar ****.jar
即可。
但是只是运行上面的jar的话,如果我们关掉了xshell之类的页面,该程序就会停掉,所以我们可以使用nohup对它进行后台运行:nohup java -jar ****.jar &
即可。
当然我们也可以在运行时指定很多参数,比如端口号等等,基本上在配置文件配置的参数我们都是可以指定的:nohup java -jar ****.jar --server.port=9091 &
。
上面运行的程序会默认将程序的所有日志打到jar包所在目录的nohup.out文件中,其中的日志非常详细,会导致日志很多,一个定时任务会每天产生上百G的日志,而我们基本会在程序中打印logger日志,该处的日志会显得比较冗余。
/usr/bin/nohup /usr/bin/java -XX:+HeapDumpOnOutOfMemoryError -Xmx2g -Xms1g -jar -Dspring.config.location=ncs-entry-template/application.properties ncs-entry-template/ncs-entry-template-1.0.0-SHAPSHOT.jar > ncs-entry-template/entry-template.log 2>& 1&
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。