【问题标题】:Spring boot with maven don`t copy resources dir带有 maven 的 Spring Boot 不要复制资源目录
【发布时间】:2017-02-20 17:03:00
【问题描述】:

我尝试使用来自https://start.spring.io/ 的 maven 配置我的 spring-boot 项目(并选择生成一个 war 文件)

这是我的 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>br.com.natal</groupId>
    <artifactId>integra</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>integra</name>
    <description>Integração para 7 Natal</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.1.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.7</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.5.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.5.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>19.0</version>
        </dependency>
        <dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-core</artifactId>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>org.springframework.boot</groupId>-->
            <!--<artifactId>spring-boot-starter-actuator</artifactId>-->
        <!--</dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

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

但是当我运行将我的项目构建成一个war文件时,目录资源不会复制到.war。

我需要清理我的项目,运行 mvn spring-boot:run,然后构建一个 war 文件。所以如果我在 application.properties 中更改了一个“,”,我需要再次执行所有操作。

我该如何解决这个问题?

tks

【问题讨论】:

  • 你如何“构建”你的项目?只有“mvn spring-boot:run”?
  • 你的“目录”资源是什么?您的项目的文件夹结构是什么?
  • 我的资源目录/src/main/resources
  • @Alex no 我运行 mvn war(但要包括 /src/main/resources)我需要先运行 mvn spring-boot:run

标签: maven spring-boot


【解决方案1】:

我遇到了同样的问题,我的问题是由于一个愚蠢的错误造成的。我的资源文件夹名称错误,因此 spring-boot-maven 插件无法复制资源。 我的文件夹名称是 resource。将其更改为所需的 Maven 文件夹结构后,一切都开始工作了。 下面是我正在使用的插件。

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

下面的命令是我用来生成jar的。

mvn -DskipTests clean compile package

【讨论】:

    【解决方案2】:

    你说你正在构建如下:

    我运行 mvn war(但要包括 /src/main/resources)我首先需要 运行 mvn spring-boot:run

    • 我假设您的意思是 mvn war:war,但这不会触发 spring-boot-maven-plugin。

    • 您应该改为使用 mvn clean install 构建 WAR,然后将触发 spring-boot-maven-plugin 并将 repackage 转换为有效的 spring-boot 战争。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-15
      • 2016-05-29
      • 2018-08-24
      • 1970-01-01
      • 2017-08-24
      • 2018-07-31
      • 1970-01-01
      • 2019-06-20
      相关资源
      最近更新 更多