【springboot】部署阿里雲詳解(jar部署出錯,jsp,freemarker路徑訪問不到解決辦法)

前言

很早之前就完成了一個項目,但是一直沒有部署到阿里雲,最近要準備簡歷面試啦,今天花了一天時間內終於完成了springboot項目部署到阿里雲。其中踩了無數坑,記錄下來分享給大家。


1. 打成jar包
  1. 剛開始的時候,在控制檯上使用命令:

E:\code\syau_web_1>mvn clean package -Dmaven.test.skip=true

結果jar包沒打成,報了很多錯
錯誤提示大概這樣:
Could not transfer artifact org.springframework:spring-tx:jar:3.2.3.RELEASE

錯誤原因: 在配置maven的時候,我沒有加入阿里雲的鏡像,導致jar文件下載不了,配置了**阿里雲鏡像**之後,就能夠下載了。 ***
  1. 在配置完
    在打成jar包之後,運行

java -jar 名稱.jar

結果訪問的時候又出錯了
由於我的項目裏包含jsp界面,結果jsp界面訪問不了,404找不到路徑。

解決方法:
我查了很多資料,springboot對jsp的支持並不好,spring-boot-maven-plugin必須是1.4.2版本

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <!--版本必須是這個-->
            <version>1.4.2.RELEASE</version>
            <configuration>
                <!--使devtools能夠起作用-->
                <fork>true</fork>
            </configuration>
        </plugin>

    </plugins>

  1. 在配置完之後,打成jar包,結果發現又報錯了。
錯誤提示: [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.2.RELEASE:repackage (default) on project s yau_web: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.4.2.RELEASE:repackage failed: Unable to find a single main class from the following candidates [com.example.syau_web.SyauWebApplication, com.example.syau_web.test.Even tListener, com.example.syau_web.test.Writer] -> [Help 1] 解決方法: 仔細看錯誤提示,有多個主類入口,所以報錯了,刪除掉沒用的類就好啦。
  1. 在部署,又報錯,數據庫訪問不了。

    錯誤提示:
    找不到數據庫,大家都知道。
解決方法: 在打成jar的時候,把配置文件加進去。 ```
    <finalName>syausell</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <!--版本必須是這個-->
            <version>1.4.2.RELEASE</version>
            <configuration>
                <!--使devtools能夠起作用-->
                <fork>true</fork>
            </configuration>
        </plugin>

    </plugins>

    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/**</include>
            </includes>
        </resource>

        <resource>
            <directory>src/main/webApp</directory>
            <targetPath>META-INF/resources</targetPath>
        </resource>




        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.yml</include>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

’```


  1. 這幾個錯誤解決了,發現我的resource下的freemarker模板訪問不了了,真是慘。

    錯誤提示:
    找不到freemarker的訪問路徑
解決方法: 主要是進行jar打包的時候,把沒用把freemarker放進去 把上面的提示路徑該成:
<resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/**</include>
                    <!--<include>**/*.properties</include>-->
                    <!--<include>**/*.xml</include>-->
                </includes>
                <filtering>false</filtering>
            </resource>

終於能把項目打成jar包了,並且所有界面都能訪問了。
整體目錄結構:
在這裏插入圖片描述


2.發佈項目到阿里雲

這個挺簡單的,把jar包放入阿里雲linux服務器上,
讓他在後臺運行:

nohup java -jar -Dserver.port=8080 sell.jar &


如果要退出進程:

jobs

kill %進程編號


發佈後項目項目地址:
http://www.yiyufei.top/login

總結

這次部署可真的是費勁,幾乎每個坑都被我踩遍了,希望大家都能部署上自己的服務器,加油。


你爲什麼會近視?爲了看淡世間的萬物,而模糊了雙眼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章