Я работаю над упражнениями в Начало Java EE 7 за исключением того, что я пытаюсь адаптировать их для использования Gradle вместо Maven. Для перехватчика упражнения глава 2, я написал эту build.gradle:ошибка градиента из-за класса перехватчика не найден
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile 'org.slf4j:slf4j-api:1.7.5', 'org.jboss.weld.se:weld-se-core:2.2.10.Final'
testCompile "junit:junit:4.11"
}
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
manifest {
attributes 'Main-Class': 'org.agoncal.book.javaee7.chapter02.Main'
}
}
Я просто с помощью Src реж непосредственно из author's GitHub. ./gradlew -x test build
преуспевает, а затем java -jar build/libs/gradleTest.jar
дает ожидаемый результат (хотя он также выплевывает множество неожиданных предупреждений). ./gradlew test
однако терпит неудачу с этой ошибкой:
org.jboss.weld.exceptions.DeploymentException: WELD-001417: Enabled interceptor class <class>org.agoncal.book.javaee7.chapter02.LoggingInterceptor</class> in file:/home/allen/gradleTest/build/resources/main/META-INF/[email protected] does not match an interceptor bean: the class is not found, or not annotated with @Interceptor and still not registered through a portable extension, or not annotated with @Dependent inside an implicit bean archive
beans.xml и все файлы классов находятся прямо из репо автора на GitHub и, кажется, именно так, как выше ошибка говорит, что они не являются. Beans.xml объявляет перехватчик, а класс перехватчика аннотируется с помощью @Interceptor.
Мое предположение заключается в том, что проблема заключается в моей конструкции градиента. Кто-нибудь видит, в чем проблема?
Просто, чтобы закрыть цикл, мне нужны были только теги test.doFirst, а не какие-либо другие. – Allen
Я думаю, что я поместил эти зависимости, когда компилировал другие проекты с JPA. –
Я буду помнить об этом позже. Кроме того, можете ли вы обновить свой ответ, чтобы немного рассказать о том, как вы наблюдали поведение контейнера Weld? Как вы видели, что он смотрит в другой каталог? Что привело ваше расследование к этому пути? и т.п. – Allen