2015-04-25 14 views
6

Sto cercando di utilizzare il plugin gradle-grails per creare un progetto (piccolo) Grails esistente. Questo dovrebbe funzionare? Qual è la relazione tra le dipendenze in build.gradle e quelle specificate in buildConfig.groovy?Gradle che fornisce ClassNotFoundException durante la creazione del progetto Grails

In ogni caso, ho due progetti, in modo che il file di più alto build.gradle è nella directory padre e si presenta come:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath "org.grails:grails-gradle-plugin:2.2.0.RC1" 
    } 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = '2.3' 
} 

e poi il build.gradle nel progetto Grails assomiglia:

apply plugin: "grails" 

repositories { 
    grails.central() //creates a maven repo for the Grails Central repository (Core libraries and plugins) 
} 

grails { 
    grailsVersion = '2.4.4' 
    groovyVersion = '2.3.9' 
    springLoadedVersion '1.2.0.RELEASE' 
} 

dependencies { 
    bootstrap "org.grails.plugins:tomcat:7.0.55.3" 
    compile 'org.grails.plugins:asset-pipeline:3.0.1' 

    compile 'org.grails.plugins:scaffolding:2.1.2' 
    compile 'org.grails.plugins:cache:1.1.8' 

    runtime 'org.grails.plugins:hibernate4:4.3.1.1' 
    runtime 'org.grails.plugins:database-migration:1.3.8' 
    runtime 'org.grails.plugins:jquery:1.11.0' 
} 

Tuttavia, quando corro ./gradlew war, torno:

Caused by: java.long.ClassNotFoundException: grails.artefact.Service 

Qualcuno può far luce su questo? Non ci sono praticamente riferimenti a questo tramite Google, sembra essere una classe di Grails 3.x? Inoltre, sto usando Java 1.7.

risposta

1

Classe grails.artefact.Service è infatti accessibile dalla v3.0 del framework Grails - come si può vedere here.

Con la seguente dichiarazione grailsVersion = '2.4.4' v2.4.4 è specificato per essere utilizzato e sembra tutto ok. Che rovina la build è la seguente dependencies ingresso:

compile 'org.grails.plugins:asset-pipeline:3.0.1' 

In questo pacchetto c'è una classe asset/pipeline/grails/AssetProcessorService che importa il citato grails.artefact.Service che non è caricato in fase di esecuzione (probabilmente a causa di v2.4.4 utilizzato).

Purtroppo non posso suggerire alcuna soluzione a parte il banale come escludere questa dipendenza. Non sono uno sviluppatore di graal né ho impostato l'ambiente.

Le speranze che aiutano in qualche modo.

+0

@JoeG, è stato utile? – Opal

Problemi correlati