Зависимость не разрешена из файла спецификации - PullRequest
0 голосов
/ 13 июля 2020

Попытка восстановить зависимость с помощью файла спецификации, но конфигурация ниже не работает.

=== Конфигурация файла спецификации ===

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>demo</groupId>
    <artifactId>bom-dependency</artifactId>
    <version>0.0.1</version>
    <packaging>pom</packaging>
    <name>bom-dependency</name>
    <description>BOM dependency</description>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc8</artifactId>
                <version>12.2.0.1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

=== Конфигурация файла POM ===

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.0.RELEASE</version>
        <relativePath />
    </parent>
    <groupId>com.demo</groupId>
    <artifactId>Test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Test</name>
    <description>Demo Project</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>demo</groupId>
                <artifactId>bom-dependency</artifactId>
                <version>0.0.1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc8</artifactId>
            <version>12.2.0.1</version>
        </dependency>
        

</project>

Кто-нибудь, пожалуйста, позвольте мне, почему он не зависит от файла спецификации?

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Удалите

                <type>pom</type>
                <scope>import</scope>

из определения в вашей спецификации и удалите номер версии зависимости в вашем тестовом проекте.

0 голосов
/ 13 июля 2020

В spring-boot-starter-parent есть предыдущее определение:

      <dependency>                                                              
        <groupId>com.oracle.ojdbc</groupId>                                     
        <artifactId>ojdbc8</artifactId>                                         
        <version>${ojdbc.version}</version>                                     
      </dependency>

Вы можете переопределить версию Spring Boot, установив свойство:

    <oracle-database.version>12.2.0.1</oracle-database.version>

Но это переопределит все Oracle артефактов. Если вы собираетесь сохранить родителя Spring Boot, все, что вы можете сделать, это создать явную зависимость.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...