2017-09-27 11 views
0

サードパーティの依存関係を持つGradleプロジェクトがあります。GradleにSQLServer依存関係を追加した後、jarがメインクラスを見つけることができません

私のjarはSQLServerの依存関係を追加するまで正常に動作しています。ここで

はbuild.gradleのスナップショットです:

group 'MyApp' 
version '1.0-SNAPSHOT' 

apply plugin: 'java' 
apply plugin: 'idea' 

sourceCompatibility = 1.8 

repositories { 
    mavenCentral() 
} 

dependencies { 
    testCompile group: 'junit', name: 'junit', version: '4.12' 
    compile 'com.amazonaws:aws-java-sdk:1.11.60' 
    compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.6' 
    compile files('mylibraries/ojdbc7.jar') 
    compile files('mylibraries/postgresql-42.1.4.jar') 
    compile files('mylibraries/mssql-jdbc-6.2.1.jre8.jar') 
} 

jar { 
    from { 
     configurations.compile.collect { 
      it.isDirectory() ? it : zipTree(it) 
     } 

    } 
    manifest { 
     attributes 'Main-Class': 'MainLauncher' 
    } 
} 

すべてがcompile files('mylibraries/mssql-jdbc-6.2.1.jre8.jar')後にブレークダウンし、依存関係に追加されました。私が得るエラー:

Error: Could not find or load main class MainLauncher

潜在的な問題は何か?ありがとうございました!

+0

jarをビルドしてください( 'jar -xvf ')、 'META-INF/MANIFEST.MF'ファイルを確認してください。それは、手動の脂肪の瓶の作成が何かを混乱させるチャンスです。また、グラデルのためのシャドウ・プラグインがあります。これはよくテストされており、ファット・ジャーを正しく構築します。パッケージ名なしの 'MainLauncher'はなぜですか? – Opal

+0

お返事ありがとう、オパール。面白いことに、1つの特定のライブラリだけが実行全体をクラッシュさせます。それ以外はすべて正常に動作します。私はすでに別のオープンソースソリューションを使用して問題を解決しました。 MainLauncherファイルは 'java'フォルダのルートにあるため、パッケージ名はありません。 – NickitaX

答えて

0

私は以前も同じ問題を抱えていました。私はちょうどプロジェクトをインポートして、グラデルクリーンビルドをしたかったのです。私はまったく同じエラーを抱えていた。

少なくとも1つの移行があることを確認するだけでこれを解決できます。それはばかげているかもしれませんが、あなたのデータベースの移行を1つ作成しようとしてください。

少なくともそれは私の問題を解決しました。私はそれがあなたの問題を解決することを確かに願っています!

1

今日、私はまったく同じ問題に直面し、私は

依存以下
group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '6.2.2.jre8' 

とjarファイルを実行していたと私は、

Error: Could not find or load main class

を正確に同じ問題に直面していた解像度

を取得するには、このページに到達しました

後で私は古いバージョンとの依存関係を変更し、この変更後も正常に動作します。

group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '6.2.1.jre7'

関連する問題