1. 程式人生 > 其它 >spring boot 專案部署

spring boot 專案部署

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包啟動

  1. pom.xm 新增打包方式
<packaging>war</packaging>
  1. 去除內嵌的tomcat依賴
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <!-- provided僅在編譯和測試時有效 -->
    <scope>provided</scope>
</dependency>
  1. 修改啟動類
// 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);
    }
}
  1. 新增打包命令
clean package
  1. 若在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>