我已經成功配置了我的gradle構建腳本,在根目錄下創建了一個帶有額外'config'文件夾的應用程序的zip分發。此文件夾(至少現在)只包含應用程序正在使用的一個屬性文件,並且位於應用程序的類路徑中。如何爲Gradle的應用程序插件的「運行」任務指定一個額外的文件夾放在類路徑中?
然而,我正在尋找的是一種在應用程序插件中執行「運行」任務的方法。當我嘗試以這種方式運行我的應用程序(用於測試)時,我的程序無法運行,因爲一個類嘗試訪問類路徑根上的此屬性文件。
如果我可以讓IntelliJ或Eclipse將該文件夾添加到類路徑中,就像其他文件夾一樣(src/main/java,src/main/resources,...),那麼我可以運行和在IDE中調試我的代碼而不調用gradle任務。我想盡量避免將這些代碼綁定到任何一個IDE上,這樣當有人需要處理這個項目時,他們只需導入build.gradle文件並讓IDE根據需要創建相應的配置文件。
這裏是我的build.gradle文件:
apply plugin: 'application'
mainClassName = "MainClass"
startScripts {
// Add config folder to classpath. Using workaround at
// https://discuss.gradle.org/t/classpath-in-application-plugin-is-building-always-relative-to-app-home-lib-directory/2012
classpath += files('src/dist/config')
doLast {
def windowsScriptFile = file getWindowsScript()
def unixScriptFile = file getUnixScript()
windowsScriptFile.text = windowsScriptFile.text.replace('%APP_HOME%\\lib\\config', '%APP_HOME%\\config')
unixScriptFile.text = unixScriptFile.text.replace('$APP_HOME/lib/config', '$APP_HOME/config')
}
}
repositories {
...
}
dependencies {
...
}
很有可能需要採取什麼是我需要有/ src目錄/距離/ config文件夾被複制到生成目錄,並添加到類路徑,或者將其內容複製到已經在類路徑中的文件夾中。
我想,如果我們添加一些文件夾到源設置,它會被放到一個jar文件(這只是我的建議,我沒有檢查,它值得檢查)。我們需要單獨的文件夾,即在classpath中,但不在jar中。 – lospejos