如何在IDE中运行app作为jar,但是将maven打包为战争?

时间:2017-06-13 07:42:15

标签: java spring maven tomcat spring-boot

我有一个使用普通main方法的应用程序,在我的IDE中作为普通jar运行。它是默认情况下在嵌入式tomcat上运行的spring-boot应用程序。

要将war文件打包为maven,只需:

<packaging>war</packaging>
    ...
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

问题:我仍然希望在嵌入的IDE中本地运行应用程序。因此,排除上面的依赖关系,并将打包保留为>jar<

问题:是否可以在maven中定义配置文件,因此默认情况下打包为= jar,但在运行特定配置文件时,它与war交换并包含tomcat服务器依赖项?

1 个答案:

答案 0 :(得分:4)

好的,它很简单:

<profiles>
    <profile>
        <id>development</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <packaging.type>jar</packaging.type>
        </properties>
    </profile>

    <profile>
        <id>production</id>
        <properties>
            <packaging.type>war</packaging.type>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </profile>
</profiles>

+用于IntelliJ IDEA:运行适当的maven命令非常简单:通过点击'package'检查所需的配置文件。