我有一個Java項目,我正在嘗試構建,我最近轉移到了gradle以便能夠更快更容易地管理依賴關係。Gradle構建不添加所有「私有」庫
我想使用gradle build
,有這樣的結果:
C:\whatever\>gradle build
:compileJava
:processResources UP-TO-DATE
:classes
:jar
:startScripts
:distTar
:distZip
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build
BUILD SUCCESSFUL
Total time: 1.75 secs
是給我的問題庫是一個,我已在本地添加這樣的:
repositories {
flatDir {
dirs 'libraries'
}
}
dependencies {
compile name: 'jfxwrapper'
}
這不是隻有我添加到該項目中的庫,但這是我自己構建的唯一一個庫。
當我執行gradle build
(或gradlew build
,似乎工作完全一樣),它給了我在build/libs/*.jar
一個.jar,然後我嘗試執行此的.jar它拋出這個異常:
拋出java.lang.ClassNotFoundException:由造成jfxwrapper.JFXWrapperScene
JFXWrapperScene裏面jfxwrapper.jar
類。在將它添加到eclipse項目路徑之前,我已經使用過這個庫,它工作的很好,但由於某種原因,gradle似乎無法找到它。
任何解釋?任何想法爲什麼發生這種情況,以及如何解決它?
謝謝你的耐心等待。
更新:我發現了問題是,我並沒有加入庫中的.jar,這段代碼將所有引用的庫中的.jar:
task fatJar(type: Jar) {
manifest {
attributes 'Implementation-Title': 'MyTitle',
'Implementation-Version': '1.1.1',
'Main-Class': 'Main'
}
baseName = project.name + '-all'
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
}
這增加使用gradle fatJar
所有的依賴,但該項目仍然不能正常工作,現在說:在應用程序啓動方法
異常
我知道我在start方法中沒有例外,因爲如果使用Eclipse導出它,我可以運行相同的代碼。
有什麼建議嗎?我開始相信切換到gradle是一個很大的錯誤,我可能需要繼續使用Eclipse導出,它不是很酷或者很快,但是它可以工作。