Spring Boot Maven 插件不创建可执行 jar

标签 spring maven-3 spring-boot

我的POM如下。但当我运行“mvn clean package”时,并未创建可执行 JAR。但是,当我删除 dependencyManagement 元素并将 spring boot 添加为父 POM 时,一切正常。

我错过了什么?

<?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>com.example</groupId>
    <artifactId>sample-boot</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <!-- Import dependency management from Spring Boot -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>1.2.0.M2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

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

    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>

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

最佳答案

需要自行配置spring-boot-maven-plugin:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>1.1.8.RELEASE</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

显然是设置你自己的插件版本。现在,如果您运行 mvn install 或 mvn package,您将生成可执行 JAR。

关于Spring Boot Maven 插件不创建可执行 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26314374/

相关文章:

java - 如何在 Spring 中以编程方式注册 FactoryBean 实例

java - 如何使用 Spring FixLengthTokenizer 提取单列

java - 使用 Spring RestTemplate 发送返回数组的 get 请求

java - Spring处理数据库连接异常

java - 朱尼特 : How to cover CompletableFuture Code

spring - 非常慢的 Spring Boot 应用程序启动

maven - Maven 中是否有一种方法可以确保设置了属性

maven - Maven 可以忽略缺少的系统属性吗?

java - 为什么 maven 不替换 maven-release-plugin 发布版本的环境变量?

mysql - 如何在 Angular 6 中显示 Spring Boot Data JPA 查询的响应