Ho configurato con successo il mio script gradle build per creare una distribuzione zip della mia applicazione con una cartella "config" aggiuntiva nella root. Questa cartella contiene (almeno al momento) solo un file di proprietà in uso dall'applicazione e si trova sul classpath per l'applicazione.Come specificare una cartella aggiuntiva sul percorso di classe per l'attività "esegui" del plugin dell'applicazione gradle?
Quello che sto cercando ora, tuttavia, è un modo per fare lo stesso con l'attività "Esegui" nel plugin dell'applicazione. Quando provo a eseguire la mia applicazione in questo modo, (per il test), il mio programma non riesce a funzionare a causa di una classe che tenta di accedere a questo file delle proprietà nella root del classpath.
Un bonus sarebbe se potessi ottenere IntelliJ o Eclipse per aggiungere anche questa cartella al suo classpath proprio come le altre cartelle (src/main/java, src/main/resources, ...) in modo da poter eseguire e eseguire il debug del mio codice dall'interno dell'IDE senza richiamare un'attività gradle. Voglio cercare di evitare il più possibile legando questo codice a qualsiasi IDE, in modo che quando qualcuno debba lavorare al progetto, abbia solo bisogno di importare il file build.gradle e fare in modo che l'IDE faccia i file di configurazione appropriati di cui ha bisogno .
Ecco il mio file 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 {
...
}
Probabilmente ciò che deve accadere è che ho bisogno di avere la dist cartella config/src// da copiare nella directory di compilazione e ha aggiunto al classpath , o avere il suo contenuto essere copiato in una cartella che è già sul classpath.
Suppongo che se aggiungiamo qualche cartella al set di fonti, sarà messo in un file jar (questo è solo il mio suggerimento, non l'ho controllato e vale la pena controllare). Abbiamo bisogno di avere una cartella separata, cioè su classpath, ma non all'interno di un jar. – lospejos