托管的Maven Spring Boot依赖项未加载到M2文件夹

时间:2019-07-01 14:58:45

标签: maven spring-boot lombok

我正在尝试在我的Spring Boot项目中使用lombok。我可以在如下所示的有效POM中看到lombok依赖性。

<dependency>
  <groupId>org.postgresql</groupId>
  <artifactId>postgresql</artifactId>
  <version>42.2.5</version>
</dependency>
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.6</version>
</dependency>
<dependency>
  <groupId>org.quartz-scheduler</groupId>
  <artifactId>quartz</artifactId>
  <version>2.3.1</version>

Buti在m2文件夹中看不到jar文件,因此我无法在我的项目中使用它。 ex-> @Getter无法识别。 但是,如果我将依赖项添加到我的实际pom中,如下所示。它被下载到m2文件夹,我可以在我的项目中使用它,但是我收到一条警告,指示我正在覆盖托管依赖项。

<dependencies>
        <!-- <dependency> -->
        <!-- <groupId>org.springframework.boot</groupId> -->
        <!-- <artifactId>spring-boot-starter-actuator</artifactId> -->
        <!-- </dependency> -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <!-- <dependency> -->
        <!-- <groupId>org.springframework.boot</groupId> -->
        <!-- <artifactId>spring-boot-starter-security</artifactId> -->
        <!-- </dependency> -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!-- Does not work if i dont add below dependency -->

        <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.18.6</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

有人可以解释这种行为吗?我希望在不将其添加到pom.xml的情况下加载它,因为它位于有效的pom中。

2 个答案:

答案 0 :(得分:0)

您需要设置以下选项: enter image description here

或在更改pom时在此弹出菜单(显示在右下角)中选择“启用自动导入”。

enter image description here

答案 1 :(得分:0)

如果您在父POM中使用<dependencyManagement>,则不会强制您的项目实际依赖那些库,因此Maven将不会下载它。

它需要出现在常规<dependencies>部分的下方,以实际表明您的项目需要依赖项,从而迫使Maven下载它。