Читайте банки из папки lib в Grails - PullRequest
2 голосов
/ 26 февраля 2012

Я хочу проанализировать файл Excel с помощью библиотеки Apache POI , чтобы загрузить некоторые данные в режиме разработки в мое приложение Grails 2.0.1.

Я пытался использовать плагин Grails excel-import , но плагин автоматически удаляется при запуске run-app .

Из-за этого я решил пока обойтись без плагина. Сначала я скопировал следующие jar-файлы в папку lib приложения 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

Я прочитал, что должен объявить зависимость в grails-app/conf/BuildConfig.groovy. Итак, я добавил следующее:

   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'
    }

Однако, когда я запускаю run-app, приложение все еще не может найти банки.

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

Я не использую IDE. Любые отзывы приветствуются!

Ответы [ 2 ]

4 голосов
/ 27 февраля 2012

Файлы POI находятся в общедоступных репозиториях Maven, поэтому попробуйте следующее:

  1. Удалите банки из папки lib
  2. Очистите сборку с помощью: grails clean
  3. В вас, BuildConfig.groovy, убедитесь, что в закрытии "репозиториев" есть "mavenCentral()", включенное / не прокомментированное
  4. Ваша зависимость выглядит нормально (я не подтвердил это), поэтому теперь попробуйте запустить приложение app

HTH

3 голосов
/ 12 декабря 2012

вместо добавления зависимости компиляции, попробуйте добавить зависимость времени выполнения следующим образом.

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'
}
...