2016-04-15 11 views
1

Ich versuche, schattierte Glas in Spring Boot-Anwendung zu bauen, aber einige Probleme. Ich weiß nicht, was ich hier falsch mache. Ich habe auch gelesen, die folgenden Links, aber kein Glück maven-shade-plugin error: Cannot find setter, adder nor field in org.apache.maven.plugins.shade.resource.ManifestResourceTransformer for 'resource'Shaded Jar in Springboot

hier ist mein pom.xml

<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>dashboard</groupId> 
    <artifactId>dashboard</artifactId> 
    <packaging>jar</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <dependencies> 

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

    <dependency> 
     <groupId>jira.widgets</groupId> 
     <artifactId>jira-widgets</artifactId> 
     <version>0.1.1-SNAPSHOT</version> 
    </dependency> 

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


    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.1.5.RELEASE</version> 
    </parent> 



    <!-- Additional lines to be added here... --> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.2</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>2.3</version> 
       <executions> 
        <!-- Run shade goal on package phase --> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
         <configuration> 
          <transformers> 
           <!-- add Main-Class to manifest file --> 
           <transformer 
            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
            <manifestEntries> 

            <Main-Class>com.text.dashboard.hello.Application</Main-Class> 
            </manifestEntries> 
           </transformer> 
          </transformers> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 

    </plugins> 
    </build> 
</project> 

Wenn ich mvn Paket laufen dann habe ich auf der Konsole folgende Ausnahme

[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building dashboard 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ dashboard --- 
[INFO] Deleting C:\Users\confiz\Documents\workspace-sts-3.7.3.RELEASE\dashboard\target 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ dashboard --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 0 resource 
[INFO] Copying 1 resource 
[INFO] 
[INFO] --- maven-compiler-plugin:3.2:compile (default-compile) @ dashboard --- 
[INFO] Changes detected - recompiling the module! 
[INFO] Compiling 2 source files to C:\Users\confiz\Documents\workspace-sts-3.7.3.RELEASE\dashboard\target\classes 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ dashboard --- 
[INFO] Not copying test resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.2:testCompile (default-testCompile) @ dashboard --- 
[INFO] Not compiling test sources 
[INFO] 
[INFO] --- maven-surefire-plugin:2.15:test (default-test) @ dashboard --- 
[INFO] Tests are skipped. 
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ dashboard --- 
[INFO] Building jar: C:\Users\confiz\Documents\workspace-sts-3.7.3.RELEASE\dashboard\target\dashboard-0.0.1-SNAPSHOT.jar 
[INFO] 
[INFO] --- spring-boot-maven-plugin:1.1.5.RELEASE:repackage (default) @ dashboard --- 
[INFO] 
[INFO] --- maven-shade-plugin:2.3:shade (default) @ dashboard --- 
[WARNING] Map in class org.apache.maven.plugins.shade.resource.ManifestResourceTransformer declares value type as: class java.util.jar.Attributes but saw: class java.lang.String at runtime 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 5.609 s 
[INFO] Finished at: 2016-04-15T10:55:02+05:00 
[INFO] Final Memory: 22M/224M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.3:shade (default) on project dashboard: Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:2.3:shade for parameter resource: Cannot find 'resource' in class org.apache.maven.plugins.shade.resource.ManifestResourceTransformer -> [Help 1] 
[ERROR] 

Szenario ist: Ich habe zwei Spring-Boot-Projekte und beide haben den gleichen Typ, der ausführbare Jar. Ich füge ein anderes Projekt in diesem Projekt als Abhängigkeit hinzu. Deshalb baue ich ein Glas, das alle Abhängigkeiten haben

Irgendwelche Vorschläge?

+0

Warum diese Sie versuchen? Der Spring-Boot erstellt bereits ein Glas mit allem, was für Sie drin ist .... Sie sind sich bewusst, dass verschiedene Spring-Boot-Versionen (1.1.5 und 1.2.7) gemischt werden, was Sie wirklich vermeiden sollten! –

+0

Szenario ist: Ich habe zwei Spring-Boot-Projekte und beide haben den gleichen Typ, die ausführbare jar. Ich füge ein anderes Projekt in diesem Projekt als Abhängigkeit hinzu. Deshalb baue ich ein Glas, das alle Abhängigkeiten haben – user3257435

+0

Warum haben dann 2 separate Projekte an erster Stelle? Es wird nicht funktionieren, da es nur eine einzige Anwendung starten wird ... –

Antwort

4

Ich weiß nicht warum, aber es hat für mich funktioniert. Verwenden Sie nur

<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
    <manifestEntries> 
     <Main-Class>com.text.dashboard.hello.Application</Main-Class> 
    </manifestEntries> 
</transformer> 

Statt

<transformers> 
    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
     <manifestEntries> 
      <Main-Class>com.text.dashboard.hello.Application</Main-Class> 
     </manifestEntries> 
    </transformer> 
</transformers> 
+0

scratch dies: für mich gearbeitet Ich habe auch mein Gehirn über dieses Thema zerbrochen, danke! 'Worked' war eine Übertreibung, es übersprang nur das Bearbeiten eines Manifests, so scheint ein Problem in der Elternpom mit dem Konfigurieren von Schatten-Plugin – Val

Verwandte Themen