Domanda

Voglio analizzare un file Excel usando il Biblioteca Apache Poi Per avviare alcuni dati in modalità di sviluppo nella mia applicazione Grails 2.0.1.

Ho provato a usare i Grails Plug-in Excel-Import ma il Il plugin disinstalla automaticamente quando eseguo run-app.

Per questo motivo ho deciso di andare avanti senza il plugin per ora. Per prima cosa ho copiato i vasetti successivi nella cartella Lib dell'applicazione Grails

$ls -la lib
poi-3.7-20101029.jar
poi-ooxml-3.7-20101029.jar
poi-ooxml-schemas-3.7-20101029.jar
xmlbeans-2.3.0.jar

Ho letto che dovrei dichiarare la dipendenza in grails-app/conf/BuildConfig.groovy. Quindi, ho aggiunto il prossimo:

   dependencies {
        // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.
        compile ('org.apache.poi:poi:3.7', 'org.apache.poi:poi-ooxml:3.7')  

        // runtime 'mysql:mysql-connector-java:5.1.16'
    }

Tuttavia, quando eseguo run-app, l'applicazione non è ancora in grado di trovare i barattoli.

grails> run-app
| Compiling 76 source files

| Compiling 30 source files.
| Error Compilation error: startup failed:
UMEExcelImporter.groovy: 8: unable to resolve class org.apache.poi.xssf.usermodel.XSSFSheet
 @ line 8, column 1.
   import org.apache.poi.xssf.usermodel.XSSFSheet
   ^

UMEExcelImporter.groovy: 7: unable to resolve class org.apache.poi.xssf.usermodel.XSSFWorkbook
 @ line 7, column 1.
   import org.apache.poi.xssf.usermodel.XSSFWorkbook
   ^

UMEExcelImporter.groovy: 9: unable to resolve class org.apache.poi.xssf.usermodel.XSSFRow
 @ line 9, column 1.
   import org.apache.poi.xssf.usermodel.XSSFRow

Non sto usando alcun IDE. Qualsiasi feedback è il benvenuto!

È stato utile?

Soluzione

I barattoli POI sono su quelli di Public Maven Repo, quindi prova questo:

  1. Rimuovi i barattoli dalla cartella Lib
  2. Pulisci la tua build con: grails clean
  3. In te buildconfig.groovy assicurati che la chiusura "repository" abbia "mavenCentral()"Incluso/non spettato
  4. La tua dipendenza sembra ok (non l'ho confermato) quindi ora prova la run-app

Hth

Altri suggerimenti

Invece di aggiungere dipendenza dalla compilazione, prova ad aggiungere la dipendenza da runtime come segue.

dependencies {
        // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.
        runtime ('org.apache.poi:poi:3.7', 'org.apache.poi:poi-ooxml:3.7')  

    // runtime 'mysql:mysql-connector-java:5.1.16'
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top