Не удалось развернуть приложение Springboot во внешнем коте - PullRequest
0 голосов
/ 21 декабря 2018

При попытке развернуть приложение springboot на внешнем коте я не могу развернуть.В pom.xml, если я исключаю зависимость от Tomcat, тогда я не сталкиваюсь с ошибкой времени компиляции.Так как я использовал классы jar tomcat в моем проекте.Пожалуйста, дайте мне знать, как развернуть проект.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

В качестве дополнения @ ответ Габлега,

в pom.xml:

<packaging>war</packaging> устанавливается как война, а не баночка.

В основном два условия Габлега и мое состояниея указал выше достаточно.Древовидного состояния достаточно, чтобы приложение могло быть развернуто во внешнем коте.

Я ссылался на видео ниже. Это действительно удобно.

https://www.youtube.com/watch?v=05EKZ9Xmfws

0 голосов
/ 21 декабря 2018

У меня была та же проблема, что и у вас, и я пришел с решением.Возможно, это не самое лучшее, но это работает ...

Сначала вам нужно два приложения:

Application.java

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

WarApplication

@SpringBootApplication
public class WarApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(WarApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(WarApplication.class, args);
    }
}

После этого вам нужно изменить pom.xml следующим образом:

<profiles>
    <profile>
        <id>tomcat</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <project.packaging>war</project.packaging>
            <project.start-class>com.whatever.WarApplication</project.start-class>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </profile>

    <profile>
        <id>springboot</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <properties>
            <project.packaging>jar</project.packaging>
            <project.start-class>com.whatever.Application</project.start-class>
        </properties>
    </profile>
</profiles>

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin.version}</version>
                <inherited>true</inherited>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <!-- Package as an executable jar/war -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring.boot.version}</version>
                <configuration>
                    <profiles>
                        <profile>tomcat</profile>
                        <profile>springboot</profile>
                    </profiles>
                    <mainClass>${project.start-class}</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

По сути, вы просто создаете профили в зависимости от того, где вы должны развернуть,Но если вам нужно только развернуть на tomcat, вы можете удалить профили.Что важно важно в этом помпе, это <scope>provided</scope> в профиле кота. Здесь - ссылка на Традиционное развертывание из Spring doc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...