在一个 jar 中部署一个包含 tomcat 的 Web 应用程序

Deploy a web application with tomcat included in one jar

我需要创建一个包含我的 Tomcat8 设置和我的 Web 应用程序的简单 jar war。

为什么?我想创建一个可移植的 Web 应用程序,这意味着您可以在任何地方托管它,在 linux、windows、mac 上,随便什么。唯一需要的是 jar 文件,所有数据都保存在包含当前 jar 文件的文件夹中创建的 "data" 文件夹中。

目标是创建一个 jar 文件,您只需开始即可 tomcat 完成后,您的 Web 应用程序已准备就绪并正在侦听。

我不知道这是否可能,但我没有发现使用 google。

PS:我将使用 VAADIN7(用于网络应用程序)、Jersey JAX-RS(用于休息 api)和 Neo4j(用于数据)

如本博文所述: Standalone web application with executable Tomcat

您可以使用 tomcat7:exec-war maven goal 创建包含所有 tomcat 类.

的自执行 jar

So you will be able to use only: java -jar createjar.jar to run your webapp without need to install an Apache Tomcat instance.

您必须使用此插件条目扩展您的 pom.xml

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.0</version>
    <executions>
        <execution>
            <id>tomcat-run</id>
            <goals>
                <goal>exec-war-only</goal>
            </goals>
            <phase>package</phase>
            <configuration>
                <path>/application</path>
                <enableNaming>false</enableNaming>
                <finalName>application.jar</finalName>
                <charset>utf-8</charset>
            </configuration>
        </execution>
    </executions>
</plugin>

构建您的应用程序:mvn package

和运行 Tomcat以及您的嵌入式应用程序:$ java -jar application.jar

或者,查看此 Heroku 教程,其中描述了创建具有嵌入式 Tomcat 的 Web 应用程序的过程:Create a Java Web Application Using Embedded Tomcat

我能够在 10 分钟内 运行 这个项目,只是按照 http://projects.spring.io/spring-boot/#quick-start

上的说明进行操作

Spring boot 在某种意义上是惊人的,它打包了我们需要的所有必要的东西,并有助于降低基础设施等方面的开发成本。帮助开发人员专注于提供实际的业务价值。

微服务(正如我在多线程中提到的那样)可以通过这种 spring 启动方法轻松实现。