2017-05-11 3 views
0

meine Feder Boot-Konstruktion wie folgt aus:Warum Spring Boot JAR in Quellressourcen ändern?

/src/main/resources/ 
    +- /lib 
    +- logback-classic-1.1.9-source.jar 
    +- logback-classic-1.1.9.jar 

und der pom i verwendet:

 <build> 
      <plugins> 
       <plugin> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-maven-plugin</artifactId> 
       </plugin> 
      </plugins> 
      <resources> 
       <resource> 
        <directory>src/main/resources/</directory> 
        <filtering>true</filtering> 
        <includes> 
         <include>**/*</include> 
        </includes> 
       </resource>  
      </resources> 
     </build> 

und ich legte die Feder Bootprojekt Verpackung in den Krieg-Datei. Wenn ich mvn clean installiere, um die Kriegsdatei zu bekommen, was schockierend ist, ist die logback-classic-1.1.9-source.jar und logback-classic-1.1.9.jar im Krieg wurde geändert !! die zwei jars in der source lib-datei sind alle 248KB.aber in war datei änderte sie zu 418KB und 420KB !! das Glas ist kaputt, 7-Zip kann das Glas nicht entpacken!

Ich weiß nicht warum, könnte mir jemand helfen? Danke!

auch ich kann

<excludes> 
    <exclude>**/*.jar</exclude> 
</excludes> 

verwenden, um Bewegung Glas in den Krieg ausschließen, aber ich will nur wissen, was falsch ist mit meinem Code der Feder Boot in Ressourcen mein Glas ändern lassen.

Ich versuche auch das Frühjahrsprojekt, in diesem Fall sind alle Dinge in Ordnung, mein Glas wurde in der Kriegsakte nicht geändert.

Antwort

0

Sie haben die Libs unter dem src/main/resources Pfad und sie kopiert werden mit Filterung Satz auf true. Beim Kopieren der Ressourcen werden sie also geändert, wenn sie String im Format ${...} enthalten.

Die erste Lösung wäre, die Gläser nicht als Ressourcen einzuschließen. Benötigen Sie das Quellglas in Ihrem endgültigen Artefakt? Wenn nicht, entfernen Sie diese lib Ordner und fügen Sie eine Abhängigkeit zu dem logback-classic jar:

<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-classic</artifactId> 
    <version>1.1.9</version> 
</dependency> 

Die neueste Version von der Art und Weise 1.2.3 ist. Wenn Sie dies verwenden, wird das Logback-Jar dort hingelegt, wo es hingehört, wenn Sie das Projekt mit mvn package erstellen. Dies ist der normale Weg, um abhängige Bibliotheken hinzuzufügen.

Wenn Sie wirklich in den diese Ressourcen behalten möchten, sollten Sie die lib Verzeichnis aus der Filterung ausschließen und kopieren Sie sie ungefiltert:

<resources> 
    <resource> 
     <directory>src/main/resources/</directory> 
     <filtering>true</filtering> 
     <includes> 
      <include>**/*</include> 
     </includes> 
     <excludes> 
      <exclude>lib</exclude> 
     </excludes> 
    </resource> 
    <resource> 
     <directory>src/main/resources/lib</directory> 
     <filtering>false</filtering> 
     <includes> 
      <include>**/*</include> 
     </includes> 
    </resource> 
</resources> 
+0

i die Filterung auf false ändern, ist das Problem solved.you sind richtig ! Vielen Dank Mist! – silver

+0

dann bitte sei so nett und akzeptiere die Antwort (klicke auf das graue Häkchen links. –

+0

Ich habe schon für dich gewählt – silver

Verwandte Themen