当前位置: 首页 > 面试题库 >

java.lang.NoClassDefFoundError:com / google / gson / Gson

宋原
2023-03-14
问题内容

我注意到一个奇怪的问题。我可以使用Junit运行我的测试用例,但是当我使用maven运行时,其中一个测试用例失败。有人抱怨找不到Gson class
def。

我能够在Maven依赖项中看到Gson jar。

因此,我怀疑classpath是否不包括Gson。因此,我使用-X运行Maven,并注意到了一些线索。

[DEBUG] Could not find metadata com.example.libraries:Symbology:1.0.0-SNAPSHOT/maven-metadata.xml in local (C:\Users\ra\.m2\repository)
[DEBUG] Skipped remote update check for com.example.libraries:Symbology:1.0.0-SNAPSHOT/maven-metadata.xml, locally cached metadata up-to-date.
[DEBUG] Could not find metadata com.example.libraries:Symbology:1.0.0-SNAPSHOT/maven-metadata.xml in local (C:\Users\ra\.m2\repository)
[DEBUG] Skipped remote update check for com.example.libraries:Symbology:1.0.0-SNAPSHOT/maven-metadata.xml, locally cached metadata up-to-date.
[WARNING] The POM for com.example.libraries:Symbology:jar:1.0.0-SNAPSHOT is invalid, transitive dependencies (if any) will not be available: 2 problems were encountered while building the effective model for com.example.libraries:Symbology:1.0.0-SNAPSHOT
[ERROR] 'dependencies.dependency.artifactId' for ::jar is missing. @ 
[ERROR] 'dependencies.dependency.groupId' for ::jar is missing. @

我有一个依赖于Symbology项目的项目,而这又使用了Gson。但是现在从此日志中,我看到没有包含传递性依赖项。因此找不到Gson班。

这是Symbology pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.example.libraries</groupId>
<artifactId>Symbology</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>Symbology</name>
<url>http://maven.apache.org</url>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.1</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.16</version>
    </dependency>
</dependencies>

这是我的项目的Pom,它称为符号系统:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.example.libraries</groupId>
<artifactId>FGF</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<distributionManagement>
    <snapshotRepository>
        <id>example.com</id>
        <name>example.com-snapshots</name>
        <url>http://example/artifactory/libs-snapshots-local</url>
    </snapshotRepository>
</distributionManagement>

<name>FGF</name>
<url>http://maven.apache.org</url>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.16</version>
    </dependency>
    <dependency>
        <groupId>com.example.libraries</groupId>
        <artifactId>Category</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.example.libraries</groupId>
        <artifactId>Time</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.example.libraries</groupId>
        <artifactId>Display</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </dependency>
    **<dependency>
        <groupId>com.example.libraries</groupId>
        <artifactId>Symbology</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </dependency>**
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>3.2.0.BUILD-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>2.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.directory.studio</groupId>
        <artifactId>org.apache.commons.lang</artifactId>
        <version>2.6</version>
    </dependency>

</dependencies>

问题答案:

花费大量时间后终于解决了问题。

问题是,当我将符号系统工件推入存储库时,它没有将pom推入存储库。因此,当我使用符号系统工件作为依赖项时,我的项目无法知道什么是传递性依赖项。

所以我将pom和jar一起推送到存储库中,现在它可以获取所有依赖项。

!!!!!!!!!



 类似资料:
  • 问题内容: 我刚开始学习TestNG。我遵循以下步骤: 我创建了testng类 @Test(dataProvider =“ registerData”) 我写了一个有四个参数的方法 @DataProvider 通话数据提供商 然后出现以下错误: 我正在使用Eclipse Luna Release 2(4.4.2),Window 7 问题答案: 似乎jar下方的您的类路径中不可用。com.googl

  • 问题内容: 我正在尝试通过以下servlet生成动态PDF文件。 但我收到以下错误: 我正在使用 weblogic应用程序服务器8.1 ....我正在使用 iTextPDF 。所以我已经为jar文件设置了CLASSPATH。 请告诉我为什么会出现此错误????我已经花了很多时间。没有遇到小问题。请帮助我。 谢谢 完成建议的操作后,出现以下错误 问题答案: 先前的答案告诉您,缺少了一个jar,这不是

  • 问题内容: 我知道以前曾问过这个问题。由于我的Java和android新手技能。我不能解决这个问题超过一个星期。 我和我的一个朋友开发了一个android项目,那里有几件事。 这件事中最奇怪的部分是,它仅在我从Google Play商店下载并对其进行测试时才发生。不是从本地android studio安装或调试模式。 这可能是什么问题,或者此返回列表完全错误?我的朋友说服此代码可以正确返回,但是从

  • 最奇怪的是,只有当我从Google play商店下载并测试它时,它才会发生。不是从本地android studio安装或调试模式。 这里的问题是什么,或者这个返回列表是完全错误的?我的朋友确信,这段代码返回正确,但从play store安装,它总是一个错误。 请建议我在哪里继续挖掘? 例外是 java.lang.ClassCastException:com.google.gson.internal

  • 问题内容: 我尝试通过tomcat7运行我的项目。jax ws maven插件生成了我的Web服务的wsdl文件后(成功生成),但尝试在浏览器中查看wsdl文件,但未得到结果。 我试图通过tomcat7服务器运行我的项目,但出现此错误,并且我没有解决此问题的方法,这是我的错误: 任何建议,解决方案…谢谢 问题答案: 在即将上课的地方加罐子。 同样存在于 尝试将这些jar添加到服务器/库中,或将其与

  • 问题内容: 在我当前的项目中,我在android中使用GSON库,并且遇到了嵌套地图反序列化的问题。这就是初始json的样子 而我的pojo的 和花类 但是当我尝试反序列化此对象时,我可以访问嵌套的哈希图,示例代码为 有什么建议? 问题答案: 这告诉Gson您想反序列化为未知值类型的Map。您可能会想指定类似的东西,但是您无法在Java中进行指定,因此解决方案是使用他们在Gson中称为TypeTo