2017-05-10 4 views
0

私はgradle v3.4 &シャドウプラグインv1.2.4を使用しています。私は、しかし、エラーが、私は実行すると下にコピーされます以下のようにシャドープラグインfor 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 

が出版した後、私は別のプロジェクト内でこの依存関係を使用しようとする私のbuild.gradleファイル内に以下の使用して私の地元のMavenリポジトリにjarファイルを公開していますGradleのビルド

/** 
* 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 

エラー

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

メインクラス名の有無にかかわらずjarファイルを公開しました(確認のためにjarファイルにマニフェストファイルをチェックしました)。公開されたjarファイルのために選択したオプションに関係なく、同じエラーが表示されます –

+0

私はgradle.settingsのmainClassName属性を持っていました - それをgradle.settingsから削除して問題を解決しました –

答えて

0

のTh eの問題はgradle.propertiesのmainClassName属性によって発生し、例外が発生しました。 gradle.propertiesからそれを削除すると、問題が修正されました。