サードパーティの依存関係を持つ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
潜在的な問題は何か?ありがとうございました!
jarをビルドしてください( 'jar -xvf')、 'META-INF/MANIFEST.MF'ファイルを確認してください。それは、手動の脂肪の瓶の作成が何かを混乱させるチャンスです。また、グラデルのためのシャドウ・プラグインがあります。これはよくテストされており、ファット・ジャーを正しく構築します。パッケージ名なしの 'MainLauncher'はなぜですか? –
Opal
お返事ありがとう、オパール。面白いことに、1つの特定のライブラリだけが実行全体をクラッシュさせます。それ以外はすべて正常に動作します。私はすでに別のオープンソースソリューションを使用して問題を解決しました。 MainLauncherファイルは 'java'フォルダのルートにあるため、パッケージ名はありません。 – NickitaX