【问题标题】:Spring and Hibernate dependencies are not being resolvedSpring 和 Hibernate 依赖项没有得到解决
【发布时间】:2021-02-28 03:43:07
【问题描述】:

对于所有导入的包,我都收到此错误消息“导入组织.....无法解析”。我的 Spring 和 Hibernate 依赖项没有得到解决。我尝试了多种解决方案来修复此错误,但没有任何接缝可以工作,以下是我尝试过的解决方案。

  1. Maven => 更新项目但同样的错误。还有 => 强制更新快照/版本
  2. 我还尝试右键单击项目并选择属性,然后选择 Maven。取消选中标有“解决工作区项目中的依赖项”的框,点击应用,然后点击确定
  3. 删除了我的本地 Maven 存储库、.m2 目录并重新启动了 Eclipse。

https://i.stack.imgur.com/LCUta.png

'''

<modelVersion>4.0.0</modelVersion>
<groupId>com.luv2code.springdemo</groupId>
<artifactId>spring-crm-rest</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>

<properties>
    <springframework.version>5.0.6.RELEASE</springframework.version>
    <hibernate.version>5.4.1.Final</hibernate.version>
    <mysql.connector.version>5.1.45</mysql.connector.version>
    <c3po.version>0.9.5.2</c3po.version>

    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

<dependencies>

    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${springframework.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${springframework.version}</version>
    </dependency>
    
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${springframework.version}</version>
    </dependency>

    <!-- Add Jackson for JSON converters -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.5</version>
    </dependency>

    <!-- Hibernate -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>${hibernate.version}</version>
    </dependency>

    <!-- MySQL -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.connector.version}</version>
    </dependency>

    <!-- C3PO -->
    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>${c3po.version}</version>
    </dependency>

    <!-- Servlet+JSP+JSTL -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.1</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>


    <!-- to compensate for java 9 not including jaxb -->
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
    </dependency>

</dependencies>

<build>

    <finalName>spring-crm-rest</finalName>

    <plugins>

        <!-- Builds a Web Application Archive (WAR) file from the project output 
            and its dependencies. -->
        <plugin>
            <!-- Add Maven coordinates (GAV) for: maven-war-plugin -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.0</version>
        </plugin>

    </plugins>
</build>
'''

【问题讨论】:

  • 您的模板中缺少 maven 依赖库。请通过导航路径添加它:--构建路径--> 配置构建路径--> 库---> 添加库--> 添加 maven 托管依赖项--> 全部应用然后更新项目。确保你已经在你的 Eclipse 中配置了 Maven。

标签: java spring eclipse hibernate maven


【解决方案1】:

第一步,您需要从项目根目录中的终端运行mvn clean install 命令。通过这种方式,您将“将包安装到本地存储库中,以用作依赖项”。之后,您肯定需要刷新工作区并运行 mvn update

【讨论】:

【解决方案2】:

从您提供的图片中可以看出一个主要问题,但我不确定您是如何将它变成这种状态的。

默认情况下,Maven 项目的源目录位于“src/main/java”和“src/test/java”。您的源目录似乎只是“src”,因此它在“main/java/com/...”中查找类,因此它希望包以“src.main.java.com...”开头。

您似乎以某种方式覆盖了 .classpath 文件中的设置。如果您在 Eclipse 中使用 Maven,则应让 m2e 插件确定类路径。

据我所知,如果您删除“src”源目录并将其替换为“src/main/java”,它将更有可能编译您的代码。

更新

在评论中回答您的问题(评论太长了):

两者都没有。如果项目尚未在工作区之外,我建议将项目复制到工作区之外的位置。如果项目已经位于工作区之外,现在删除项目,但不要删除内容。如果项目位于工作空间内,正如您现在已将其复制出来,您可以删除该项目。此时,转到项目位于工作区之外的位置,并从该位置删除“.classpath”文件。现在,将项目重新导入 Eclipse。如果您的项目是传统的,那么这会将其“重置”为一个关于 m2e 的健全组织。

【讨论】:

  • 我正在学习关于 Udemy 的课程,这是他们提供的解决方案,以遵循课程。我对包结构有同样的怀疑,并试图改变它,但也被卡住了。此时重新安装eclipse/maven是否更好?
  • 感谢所有回复的人。我的问题源于未正确设置环境变量。在遵循 tutorialspoint.com/maven/maven_environment_setup.htm 之后,我能够修复它。
猜你喜欢
  • 1970-01-01
  • 2022-12-11
  • 2021-03-13
  • 2021-07-23
  • 2018-05-13
  • 1970-01-01
  • 2015-07-22
  • 2020-05-12
  • 2018-10-22
相关资源
最近更新 更多