Я создаю собственный плагин Gradle.При создании плагина с Gradle выдается ошибка NoClassDefFoundError:
[...]
Caused by: java.lang.reflect.InvocationTargetException
at org.gradle.plugin.devel.tasks.ValidateTaskProperties$1.visitFile(ValidateTaskProperties.java:181)
... 54 more
Caused by: org.gradle.internal.impldep.com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: com/example/I18nBoundaryException
at org.gradle.internal.impldep.com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2199)
at org.gradle.internal.impldep.com.google.common.cache.LocalCache.get(LocalCache.java:3934)
at org.gradle.internal.impldep.com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938)
at org.gradle.internal.impldep.com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4821)
at org.gradle.internal.impldep.com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4827)
at org.gradle.api.internal.tasks.properties.DefaultPropertyMetadataStore.getTypeMetadata(DefaultPropertyMetadataStore.java:152)
at org.gradle.api.internal.tasks.properties.PropertyValidationAccess$BeanTypeNodeFactory.createRootNode(PropertyValidationAccess.java:86)
at org.gradle.api.internal.tasks.properties.PropertyValidationAccess.collectTaskValidationProblems(PropertyValidationAccess.java:69)
... 55 more
Caused by: java.lang.NoClassDefFoundError: com/example/I18nBoundaryException
at org.gradle.api.internal.tasks.properties.DefaultPropertyMetadataStore.getFields(DefaultPropertyMetadataStore.java:281)
at org.gradle.api.internal.tasks.properties.DefaultPropertyMetadataStore.access$100(DefaultPropertyMetadataStore.java:81)
at org.gradle.api.internal.tasks.properties.DefaultPropertyMetadataStore$3.visitType(DefaultPropertyMetadataStore.java:164)
at org.gradle.internal.reflect.Types.walkTypeHierarchy(Types.java:58)
at org.gradle.api.internal.tasks.properties.DefaultPropertyMetadataStore.createTypeMetadata(DefaultPropertyMetadataStore.java:158)
at org.gradle.api.internal.tasks.properties.DefaultPropertyMetadataStore.access$000(DefaultPropertyMetadataStore.java:81)
at org.gradle.api.internal.tasks.properties.DefaultPropertyMetadataStore$1.load(DefaultPropertyMetadataStore.java:114)
at org.gradle.api.internal.tasks.properties.DefaultPropertyMetadataStore$1.load(DefaultPropertyMetadataStore.java:111)
at org.gradle.internal.impldep.com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3524)
at org.gradle.internal.impldep.com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2317)
at org.gradle.internal.impldep.com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2280)
at org.gradle.internal.impldep.com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195)
... 62 more
I18nBoundaryException
- это пользовательское исключение, определенное в другом модуле IntelliJ в том же проекте, поэтому я считаю, что проблема заключается в том, чтобы включить класс вclasspath плагина.
Мой build.gradle
файл выглядит следующим образом:
apply plugin: "java-gradle-plugin"
apply plugin: "groovy"
gradlePlugin {
plugins {
i18nGradlePlugin {
id = 'i18n-gradle-plugin'
implementationClass = 'com.example.I18nPlugin'
}
}
}
dependencies {
compile gradleApi()
compile project(":library")
compileOnly libraries.lombok
testCompile libraries.junit
testCompile gradleTestKit()
}
Класс исключения определен в :library
.Сборка кода через Intellij, а не через gradle, работает.
Как включить необходимые зависимости в classpath?
Обновление: Проблема также возникает при сборкеПлагин Maven.И jar плагина, и jar библиотеки загружаются в репозиторий, где maven может его найти.В репозитории есть файл pom, который дает понять, что library.jar является зависимостью плагина maven.