springboot web项目打包成 jar包部署在服务器

springboot web项目打包成jar包部署在服务器

pom.xml

虽然官方并不推荐把网页放在webapp,但是我这边还是使用了webapp。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.com.test</groupId>
    <artifactId>test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <!-- 打包成jar -->
    <packaging>jar</packaging>

    <name>test</name>
    <description>测试测试</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <repositories>
        <repository>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
                <checksumPolicy>ignore</checksumPolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
                <checksumPolicy>ignore</checksumPolicy>
            </snapshots>
            <layout>default</layout>
        </repository>
    </repositories>

    <properties>
        <!-- 文件拷贝时的编码 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!-- 编译时的编码 -->
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <java.version>1.8</java.version>
        <okhttp.version>3.9.1</okhttp.version>
        <guava.version>23.5-jre</guava.version>
        <fastjson.version>1.2.42</fastjson.version>
        <druid.version>1.1.6</druid.version>
        <informix.jdbc.version>4.10.JC7DE</informix.jdbc.version>
        <mybatis.version>1.3.1</mybatis.version>
        <mybatis.pagehelper.version>1.2.3</mybatis.pagehelper.version>
        <mybatis.base.version>1.2.1</mybatis.base.version>
        <quartz.version>2.2.1</quartz.version>
        <lombok.version>1.16.20</lombok.version>
        <poi.version>3.10-FINAL</poi.version>
        <commons-io.version>2.2</commons-io.version>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>



        <!-- 使用fastJson代理spring默认Jackson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>

        <!-- 使用okhttp组件作为Http请求工具类 -->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>${okhttp.version}</version>
        </dependency>

        <!-- 使用Google的Guava作为基础组件类库 -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${guava.version}</version>
        </dependency>

        <!-- 使用druid作为数据库数据源管理 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>${druid.version}</version>
        </dependency>

        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3.0</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <!--<scope>provided</scope>-->
        </dependency>



        <!-- SpringBoot安全监控 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>



        <!-- 注解组件 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>${poi.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>${commons-io.version}</version>
        </dependency>
    </dependencies>

    <build>
        <!-- 最后打包成的文件名 -->
        <finalName>test</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>

        <!-- 指定资源文件的位置,否则maven打包的时候不会把文件打包进去,导致thymeleaf无法解析 -->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/webapp</directory>
                <targetPath>META-INF/resources</targetPath>
            </resource>

        </resources>
    </build>


</project>

Controller返回页面

这里需要注意,Controller返回页面页面时前面不要加/否则部署到服务器上thymeleaf会解析不出来

/**
     * 登录请求
     * @return
     */
    @RequestMapping("/login")
    public String login(){
        return "login";
    }

部署和运行jar包

常规的将jar包上传到服务器上面之后,就可以进行部署了
这里附上shell脚本,我这边指定了jdk为1.8

export JAVA_HOME=/home/jdk1.8.0_161
export JRE_HOME=/home/jdk1.8.0_161/jre
export PATH=$JAVA_HOME/bin:$PATH
ps -ef | grep 'test' | grep -v grep| awk '{print $2}' | xargs kill -9 
sleep 10;
java -jar /home/test/test.jar > /home/test/output.log 2>&1 &

shell指令的意义参考下文
shell指令的意义

大功告成~~~

撒花撒花撒花

猜你喜欢

转载自blog.csdn.net/Chirskuro/article/details/79542731