2017-01-10 20 views
0

我有一個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導出,它不是很酷或者很快,但是它可以工作。

回答

0

我只是找到了解決辦法:

當編譯基於JavaFX的程序,你需要指定的資源(*的.css,* .fxml,圖片......),於我而言這一塊的代碼工作:

sourceSets.main.resources.srcDir 'pathToDirectory' 
//For exmaple, in my case: 'src/main/java'