Веб-приложение Spring Boot: синхронизируйте эластичный бобовый стебель с GitHub - PullRequest
0 голосов
/ 25 февраля 2019

Я разработал веб-приложение с Spring Boot и, чтобы протестировать его в Интернете, загрузил WAR-файл на AWS, используя сервис Elastic Beanstalk.Но файл WAR действительно очень большой, больше 100 МБ, поэтому каждый раз, когда мне нужно развернуть новую версию, для ее загрузки требуется много времени.Здесь родился мой вопрос ...
Есть ли способ синхронизировать Elastic Beanstalk с моим git-репо?Было бы здорово иметь возможность просто внести изменения на GitHub, чтобы развернуть новую версию веб-приложения на AWS.

И, кстати, правильно ли, что файл WAR такой большой?
Если это может помочь, это файл pom.xml:

<?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>xxxx</groupId>
    <artifactId>xxxx</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>xxx</name>
    <description>Demo project for Spring Boot</description>

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

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.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-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>

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

        <!-- JSTL -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <!-- To compile JSP files -->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- Need this to compile JSP -->
        <dependency>
            <groupId>org.eclipse.jdt.core.compiler</groupId>
            <artifactId>ecj</artifactId>
            <version>4.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity4</artifactId>
            <version>3.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>aws-sdk-java</artifactId>
            <version>2.4.11</version>
        </dependency>

    </dependencies>



    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Вы описываете непрерывное развертывание или непрерывную доставку.Инструментом AWS для этого является CodePipeline, и он может использовать Elastic Beanstalk в качестве пункта назначения .

0 голосов
/ 25 февраля 2019

Вы можете синхронизировать свой репозиторий GitHub с Elastic Beanstalk, используя CodePipeline и CodeBuild.

  1. Ваш конвейер настроен для прослушивания вашего репозитория (например, на главном сервере): исходная стадия.
  2. Когда появляется новый коммит, ваш конвейер запускается.
  3. Конвейер использует CodeBuild для сборки вашего приложения в файл WAR: этап сборки.
  4. На последнем этапе вашего конвейера развертывается вашприменение с Elastic Beanstalk.
...