我希望標題本身是描述性的,但要清楚,我想包括一個jar
(即錯誤處理 - service.jar中)在問候服務。罐子。構建之後我列入新的項目(即TestApplication),但在執行TestApplication我收到的問候,service.jar中(順便說一句,TestApplication不是gradle這個項目)搖籃:添加類的JAR文件的類路徑
Exception in thread "main" java.lang.NoClassDefFoundError: co/common/exception/BaseException
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
co.common.exception。 BaseException是一個類錯誤處理服務模塊
按照question在這裏。我包括
manifest {
attributes(
"Manifest-Version": "1.0",
"Class-Path": configurations.compile.collect { it.getName() }.join(' ')
)
}
這裏是問候服務的的build.gradle這是依賴於錯誤處理服務
buildscript {
repositories {
mavenCentral()
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'maven'
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
compile('org.apache.commons:commons-lang3:3.0')
compile('org.apache.commons:commons-collections4:4.0')
compile('org.slf4j:slf4j-api:1.7.25')
compile('co.common:error-handling-service:1.0.0-SNAPSHOT')
testCompile("org.mockito:mockito-all:1.9.5")
testCompile('junit:junit:4.12')
}
jar {
baseName = 'greeting-service'
version = '1.0.0-SNAPSHOT'
manifest {
attributes(
"Manifest-Version": "1.0",
"Class-Path": configurations.compile.collect { it.getName() }.join(' ')
)
}
}
group = 'co.common'
version = '1.0.0-SNAPSHOT'
sourceCompatibility = 1.8
targetCompatibility = 1.8
task wrapper(type: Wrapper) {
gradleVersion = '2.3'
}
問候服務的成功構建後,我包括在TestApplication問候,service.jar中而且我仍然收到了上述相同的例外。
Manifest-Version: 1.0
Class-Path: commons-lang3-3.0.jar commons-io-2.4.jar commons-collections
4-4.0.jar slf4j-api-1.7.25.jar error-handling-service-1.0.0-SNAPSHOT.
jar commons-logging-1.1.3.jar
爲什麼會發生這種情況,應該怎麼辦?
jar的內容不包含error-handling-service-1.0.0-SNAPSHOT.jar的類。但是,這是我想知道我的配置看起來不錯,或者我失去了一些東西? –
你的構建文件看起來不錯。但是錯誤是由於缺少類co/common/exception/BaseException造成的。因此,您應該將包含此類的.jar文件包含到構建路徑中。或者你可以從你的代碼中刪除這個類的用法。您可以使用'gradle dependencies'命令檢查您的gradle項目的實際依賴關係 –