Я включаю банку в проект Grails и получаю класс, который не найден.Grails не может найти класс в jar
buildConfig.groovy
dependencies {
compile "labServices:labServices:1.0"
}
repositories {
flatDir name:'labServices', dirs:'../LabServices/build/libs/'
}
Когда я проверить labServices банки он содержит классы
Когда я осмотреть .war она содержит labServices.jar
Когда я осмотрю tomcat развертывание войны WEB_INF/lib содержит банку
Код, который не работает
//this is a class in the labServices.jar
def clarityCredentials = new Clarity("prod", "xxxx", "xxxx")
Ошибка
org.petermac.util.Clarity. StackTrace следующим образом: java.lang.ClassNotFoundException: org.petermac.util.Clarity
Я бежал чистит, очистили кэш плющ, удалены все вручную и по-прежнему не работает. Кроме того, он выполняется локально и через модульные тесты (так это война)
Примечание: Отчет о зависимости не показывает зависимостей для labServices, хотя есть некоторые. Может ли это быть проблемой?
Я относительно новичок в Grails (от Microsoft), поэтому любые трюки, идеи или методы отладки будут отличными.
Я довольно уверен, что это установка, когда путь к классам развертывается
UPDATE Фактический код ненужности удален
import org.petermac.util.Clarity
public class LoadClarityController extends BaseController {
def load()
{
String samples = params.get("sampleIds")
def clarityCredentials = new Clarity("prod", "apiuser", "[email protected]")
}
}
//in LabServices (jar is being included in war)
package org.petermac.util
public class Clarity
{
public Clarity(server, username, password)
{
}
}
Путь даже появляется в META-INF (в войне). Также у меня есть еще одна внешняя банка, которая работает нормально? Я в недоумении.
Да, Clarity.class находится в org/.... но источник LoadClarityController.class (из войны) не ссылается на util.Clarity (ни один из импорта не ... это? – GarethReid
Если контроллер находится в другом пакете из класса, который он использует, вам нужен импорт, как в любом классе Java или Groovy. Но он жалуется, что не может найти 'org.petermac.util.Clarity' , поэтому вы должны были импортировать это, правильно? Что такое класс контроллера? –
Я добавил голые коды кода в нижней части сообщения под обновлением. Сообщите мне, если это поможет. – GarethReid