spring boot 專案部署
阿新 • • 發佈:2022-03-06
jar包啟動
不做任何修改,直接使用 package
打成的就是jar包。
使用 java -jar xxx.jar
啟動。
若在Linux中可以使用 nohup java -jar xxx.jar &
方式啟動。
nohup 為後臺啟動,通過檢視日誌檔案 nohup.out
檔案查詢( tail -200f nohup.out
)項執行情況。通過 ps -ef | grep xxx.jar
找到程式 pid
,使用 kill -9 pid
殺掉程序即關閉 xxx.jar
程式。
war包啟動
- 在
pom.xm
新增打包方式
<packaging>war</packaging>
- 去除內嵌的tomcat依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!-- provided僅在編譯和測試時有效 -->
<scope>provided</scope>
</dependency>
- 修改啟動類
// spring boot啟動方式(預設) @SpringBootApplication @EnableScheduling public class SpringBootApplication { public static void main(String[] args) { SpringApplication.run(SpringBootApplication.class, args); } } // 修改後 @SpringBootApplication @EnableScheduling public class SpringBootApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(SpringBootApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SpringBootApplication.class); } }
- 新增打包命令
clean package
- 若在weblogic中啟動war包,可以新增weblogic.xml檔案
<?xml version="1.0" encoding="UTF-8"?> <wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd"> <wls:container-descriptor> <wls:prefer-application-packages> <wls:package-name>org.slf4j</wls:package-name> </wls:prefer-application-packages> </wls:container-descriptor> <wls:context-root>/applicatioin</wls:context-root> </wls:weblogic-web-app>
可以直接在專案中寫好weblogic.xml檔案
在weblogic中選擇 部署為應用程式
引入本地jar包(非maven依賴包)
引入路徑如下:
可以發現,我放在了專案根目錄下。
可以在pom.xml中直接引入jar包:
<dependency>
<groupId>cn.geoary</groupId>
<artifactId>barcode4j-light</artifactId>
<version>2.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/barcode4j-light-2.0.jar</systemPath>
</dependency>
切記,這裡的scpoe為 system
。
system與provide相同,只不過system必須配合systemPath使用,而provide會從maven倉庫拉取。
build 節點:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<webResources>
<resource>
<!--把本地lib裡面的jar複製到lib-->
<directory>${project.basedir}/lib</directory>
<targetPath>WEB-INF/lib/</targetPath>
<filtering>false</filtering>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
<finalName>applicatioin</finalName>
</build>