Ressourcen, die in einer Spring-Boot-Anwendung fehlen jar-Datei bei der Verwendung von Spring-Boot-Maven-Plugin

Bin ich mit Spring-Boot-v1.3.0.M5 mit Maven v3.3.3. Früher konnte ich meinen Spring-Boot (Boot) - Applikation von der Konsole aus, mit diesem Befehl.

mvn clean package spring-boot:run

Allerdings, musste ich revidiere meine pom.xml zur Berücksichtigung der unterschiedlichen Umwelt baut. Insbesondere bin ich über Maven-profile so ändern Sie die Eigenschaften der Dateien des boot-Anwendung. Wenn ich jetzt führen Sie die zuvor genannten Befehl die boot-Anwendung nicht zum laufen und beschwert sich mit der folgenden Ausnahme.

Verursacht durch: java.lang.NumberFormatException: For input string: "${MULTIPART.MAXREQUESTSIZE}"

Ich habe eine properties-Datei befindet sich auf src/main/resources/config/application.properties. Und diese properties-Datei hat eine Reihe von Schlüssel-Wert-Paare, die wie folgt aussieht.

multipart.maxFileSize=${multipart.maxFileSize}
multipart.maxRequestSize=${multipart.maxRequestSize}

Dann in meinem pom.xml mein Aufbau ist wie folgt definiert.

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>**/*.properties</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>false</filtering>
            <excludes>
                <exclude>**/*.properties</exclude>
            </excludes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
<profiles>
    <!-- development -->
    <profile>
        <id>env-dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <property>
                <name>env</name>
                <value>dev</value>
            </property>
        </activation>
        <properties>
            <multipart.maxFileSize>250MB</multipart.maxFileSize>
            <multipart.maxRequestSize>250MB</multipart.maxRequestSize>
        </properties>
    </profile>
    <!-- staging -->
    <profile>
        <id>env-stg</id>
        <activation>
            <activeByDefault>false</activeByDefault>
            <property>
                <name>env</name>
                <value>stg</value>
            </property>
        </activation>
        <properties>
            <multipart.maxFileSize>500MB</multipart.maxFileSize>
            <multipart.maxRequestSize>500MB</multipart.maxRequestSize>
        </properties>
    </profile>
<profiles>

Bemerkte ich, dass, wenn ich in mvn clean package und Blick in die jar - Datei, die application.properties - Datei innerhalb der jar-Datei.

Jedoch, wenn ich in mvn clean package spring-boot:run, dann die applications.properties Datei ist nicht innerhalb der jar-Datei. In der Tat, nichts unter src/main/resources macht es in der jar-Datei.

Dieses problem ist ein wenig ärgerlich für mich, weil wenn ich will laufen meine boot-Anwendung von der Befehlszeile aus, ich habe zu tun, zwei Schritte, jetzt.

  1. mvn clean package
  2. java -jar ./target/app-0.0.1-SNAPSHOT.jar

Irgendwelche Ideen auf, was ich falsch mache?

InformationsquelleAutor Jane Wayne | 2015-10-18
Schreibe einen Kommentar