【问题标题】:Intellij not importing SpringData Dependency from pom.xmlIntellij 未从 pom.xml 导入 SpringData 依赖项
【发布时间】:2019-03-18 19:29:49
【问题描述】:

我正在尝试从 spring 数据中使用 JPA 存储库,但导入不起作用。我在 pom.xml 中有正确的依赖关系,但仍然没有从 maven 加载 jar。

我的 pom.xml 看起来像这样

 <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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bestbuy.supportspace</groupId>
<artifactId>video-library</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>Video Library</name>

<properties>
    <spring.version>3.2.0.RELEASE</spring.version>
</properties>

<dependencies>

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

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

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

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
        <scope>test</scope>
    </dependency>

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

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>1.4.2.RELEASE</version>
        <scope>compile</scope>
    </dependency>

    <!-- SERVLET -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
    </dependency>

    <!--DATABASE -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.18</version>
        <type>jar</type>
    </dependency>

    <dependency>
        <groupId>org.hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>2.2.4</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-annotations</artifactId>
        <version>3.5.6-Final</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.0.0.Final</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>

    <!-- TESTING -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>1.4.2.RELEASE</version>
    </dependency>

</dependencies>

<build>
    <finalName>VideoLibrary</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <includes>
                    <include>**/*Tests.java</include>
                </includes>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
</project>

我已经研究了几乎所有可能的情况。 maven 存储库确实有发布 1.2.2.Release 的工件 spring-data-jpa,但它仍然无法正常工作

【问题讨论】:

  • 您是否开启了自动导入功能?您是否从 pom 重新导入?
  • 是的,自动导入已打开。只有“动态添加明确的导入”没有被选中。

标签: maven intellij-idea dependencies spring-data


【解决方案1】:

在你的 pom 文件中对 spring-data-jpa 的依赖是两次

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>1.4.2.RELEASE</version>
    <scope>compile</scope>
</dependency>

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>1.4.2.RELEASE</version>
</dependency>

尝试删除一个并检查 1.4.2 是否是您的 maven repo

【讨论】:

    【解决方案2】:

    正如 Dave Newton 所提到的 - 你应该重新导入 pom。另外,请注意JpaRepository 是一个接口,因此您需要实现而不是扩展。

    【讨论】:

    • 我确实从 pom 重新导入,但没有任何反应。除了我之外,还有几个开发人员对此进行了研究,但似乎没有人找到解决方案
    • 尝试关闭 IntelliJ,从 m2 存储库目录中删除所有内容,然后重新导入 pom
    • 我这样做了,但它不起作用。最后我不得不重新制作整个项目。一旦我这样做了,就在 pom.xml 中添加了依赖项。它立即找到了依赖项并添加了它。我找不到更好的解决方案
    【解决方案3】:

    尝试像这样直接将版本设置为依赖项,而不是将其描述为属性。

    <!-- SPRING -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>3.2.0.RELEASE</version>
        </dependency>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-05
      • 2021-02-20
      • 2020-07-17
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多