2017-05-10 9 views
0

ich gradle v3.4 & Schatten Plugin v1.2.4 verwenden. Veröffentliche ich eine JAR-Datei auf meinem lokal Maven Repo folgende Verwendung in meiner build.gradle DateiManifest Ausgabe für Schatten-Plugin mit gradle

mainClassName = 'some.thing.SomeClient' 
    jar { 
     manifest { 
      attributes(
        'Class-Path': configurations.compile.collect { it.getName() }.join(' '), 
        // 'Main-Class': 'some.thing.SomeClient' 
      ) 
     } 
    } 

    shadowJar { 
     baseName = 'commons-java' 
     classifier = null 
     version = '0.0.1-SNAPSHOT' 
    } 

    artifacts { 
     archives shadowJar 
    } 

    jar.dependsOn shadowJar 

Nach der Veröffentlichung, versuche ich in einem anderen Projekt, diese Abhängigkeit zu verwenden, wie folgt erhalten, aber der Fehler unten kopiert, wenn ich laufe Gradle build

/** 
* jar/shadow jar (shadow jar extends jar task to create fat jar) 
*/ 
jar { 
    manifest { 
     attributes(
       'Class-Path': configurations.compile.collect { it.getName() }.join(' '), 
       //'Main-Class': 'some.thing.SomeClient' 
     ) 
    } 
} 

shadowJar { 
    baseName = 'something-java-client' 
    classifier = null 
    version = '0.0.1-SNAPSHOT' 
} 

artifacts { 
    archives shadowJar 
} 

jar.dependsOn shadowJar 

Fehler

The value of a manifest attribute must not be null (Key=Main-Class). 
+0

Ich habe die JAR-Datei mit und ohne Hauptklassenname veröffentlicht (ich habe auch die Manifestdatei im Jar überprüft, um dies zu bestätigen). Ich bekomme immer noch den gleichen Fehler, unabhängig davon, welche Option ich für die veröffentlichte JAR-Datei gewählt habe –

+0

Ich hatte das mainClassName-Attribut in meinem Gradle.settings - das Entfernen von grade.settings das Problem behoben –

Antwort

0

Th Das Problem wurde durch das mainClassName-Attribut in der Datei "gradle.properties" verursacht, das zu der Ausnahme führte. Durch das Entfernen von "grandle.properties" wurde das Problem behoben.

Verwandte Themen