<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## SpringBoot應用的部署方式 應用程序的部署方式是一個重要的環節。部署方式的選擇,影響這節省運維人員工作量,決定著是否可以自動化部署。 SpringBoot設計的目的之一就包含了快速部署這個優點。下面就來對比下各種部署方案的優缺點。 打包部署方案總共分為以下幾點 * 常規部署 * 封裝部署 * 熱部署 * Docker環境部署 其中熱部署是在其它部署的基礎上的實現。 ## 一、常規部署 ------ 所謂常規部署是指和普通應用程序部署方式一樣,采用以下類似目錄結構部署。 ``` app/ ============================ 應用程序根目錄 |--- startup.sh =============== 啟動腳本 |--- lib ======================= 依賴第三方jar | |--- spring-beans-4.3.2.RELEASE.jar | |--- jedis-2.9.0.jar | |... ======================== 其它jar |--- conf ======================= 配置文件路勁 |--- ..... ====================== 其它需要目錄 ``` 這種部署方式實現基于maven提供的打包插件。使用配置如下: ```xml <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions> <execution> <id>timestamp-property</id> <goals> <goal>timestamp-property</goal> </goals> <configuration> <name>current.time</name> <pattern>yyyyMMddHHmmss</pattern> <timeZone>GMT+8</timeZone> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> <excludeTransitive>false</excludeTransitive> <stripVersion>false</stripVersion> </configuration> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> <excludeTransitive>false</excludeTransitive> <stripVersion>false</stripVersion> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <executions> <execution> <id>copy-resources</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <encoding>UTF-8</encoding> <outputDirectory>${project.build.directory}/conf</outputDirectory> <resources> <resource> <directory>src/main/resources/</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> <execution> <id>copy-command</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <encoding>UTF-8</encoding> <outputDirectory>${project.build.directory}</outputDirectory> <resources> <resource> <directory>src/main/resources/</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <finalName>${project.artifactId}-${current.time}</finalName> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>${start-class}</mainClass> </manifest> <manifestEntries> <Class-Path>. lib/ config/</Class-Path> </manifestEntries> </archive> <includes> <include>mybatis/**</include> <include>com/**</include> <include>META-INF/*</include> </includes> </configuration> </plugin> ``` 這種部署方式是最傳統的方式。對于應用程序,如果有需要修改的配置在程序的某個目錄下,當然可以很方便的修改。但同時這也不利于自動化部署,每個應用程序都有自己的多個目錄,可修改配置文件分離在這些目錄中。更好的方案應該是可修改的配置與程序分離。 ## 二、封裝部 署 ------ spring boot官方提供了maven打包插件(spring-boot-maven-plugin),可以將程序相關依賴jar、無需修改的配置打成一個jar包。 使用方式如下: * 如果pom是繼承自spring-boot-starter-parent,只需要下面的指定: ```xml <properties> <!-- The main class to start by executing java -jar --> <start-class>com.mycorp.starter.HelloWorldApplication</start-class> </properties> ``` * 如果pom不是繼承spring-boot-starter-parent,需要下面的指定。 ``` <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.3.5.RELEASE</version> <configuration> <mainClass>${start-class}</mainClass> <layout>ZIP</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> ``` from:[Spring Boot Maven Plugin](https://docs.spring.io/spring-boot/docs/current/maven-plugin/usage.html) 這種方式的缺點就是每次打的包是一個很大的jar,如果服務器網絡帶寬較小,每次更新都會比較耗時。 ## 三、熱部署 ------ [Spring Boot熱部署—SpringBoot + Devtools](http://blog.csdn.net/qq_23212697/article/details/54629051) ## 四、Docker環境部署 ------ [使用docker-maven-plugin插件實現Docker構建并提交到私有倉庫](http://www.jianshu.com/p/c435ea4c0cc0)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看