2016-04-30 16 views
2

gsonを使用するgradleプラグインを作成していますが、クライアントでプラグインを使用すると、これがスローされますjava.lang.NoClassDefFoundError: com/google/gson/Gson プラグインの依存関係を間違った方法でリンクしています。しかし、私はかなりの助けが素晴らしいだろうとは思っていません。カスタムグラデルプラグインに依存関係を追加する

build.gradleプラグイン

group 'nl.daanluttik.gradle' 
version '0.1' 

apply plugin: 'java' 
apply plugin: 'maven' // the plugin to distribute to maven 

sourceCompatibility = 1.8 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile group: 'com.google.code.gson', name: 'gson', version: '1.7.2' 
    compile gradleApi()/*The gradle plugin api*/ 
    testCompile group: 'junit', name: 'junit', version: '4.11' 
} 

//To distribute to maven 
uploadArchives { 
    repositories { 
     mavenLocal() 
    } 
} 

でクライアントプロジェクト

buildscript { 
    repositories { 
     mavenLocal() 
    } 
    dependencies { 
     classpath group: 'nl.daanluttik.gradle', name: 'peach', version: '0.1' 
    } 
} 
+1

が、これは本当に最初のエラーです:

apply plugin: 'maven-publish' publishing { publications { maven(MavenPublication) { groupId 'nl.daanluttik.gradle' artifactId 'peach' version '0.1' from components.java } } } 

次に、あなたはgradle publish

参考にリポジトリ(デフォルトのローカルのみ)に公開することができますか?いくつかの静的初期化子が何らかの例外を投げた場合、 'ClassNotFoundException'とは対照的に' NoClassDefFoundError'が表示されることがよくあります。そのため、クラスをロードできず、後で利用できません。 – Vampire

+0

@BjörnKautlerあなたは完全に正しいです。私はそれを変更します –

+0

偉大な、私はあなたがそれに応じてそれに応じて行動することができるので、commenの答えを作った:-) – Vampire

答えて

0

でbuildgradleのセグメントは、これは本当に最初のエラーですか?いくつかの静的初期化子が何らかの例外を投げた場合、そのクラスはロードできず、後で使用できないため、ほとんどの場合、NoClassDefFoundErrorClassNotFoundExceptionと対照的に)が表示されます。

+0

--infoと--debugを使ってプラグインを実行すると、 'java.lang.NoClassDefFoundError'の前にエラーが表示されません。それを解決する方法。 –

+0

ああ、申し訳ありませんが、私はあなたに誤解しました。私はあなたの問題だと思ったコメントから。 – Vampire

+0

これは大丈夫です。問題の説明を変更するつもりです。問題の原因はまだ私にとって謎です。 –

関連する問題