где определить тестовые зависимости maven - PullRequest
0 голосов
/ 02 января 2019

Я хочу предоставить тестовые зависимости, такие как spring, mockito и junit, в каждом проекте, чтобы было проще писать тесты. Должен ли я использовать управление зависимостями для этих зависимостей или определить их в родительском pom?

Ответы [ 3 ]

0 голосов
/ 02 января 2019

Да, вам не нужно определять зависимость в каждом проекте.Просто определите зависимость в родительском пом.Дочерний проект автоматически наследует родительский pom.Также, если вы хотите использовать другую версию Mockito или что-нибудь.Просто переопределите родительскую зависимость в дочерней.

0 голосов
/ 02 января 2019

Все общие зависимости могут быть упомянуты в родительском файле pom. Существует в основном 4 типа зависимостей, которые можно упомянуть в файле pom.

  1. Зависимости библиотеки, созданные нами
  2. Зависимости модулей от наших собственных модулей
  3. Зависимости сторонних библиотек
  4. Зависимости для тестов

Пример

<dependencies>
<!-- Library Dependencies created by ourselves -->
    <dependency>
        <groupId>it.myapp</groupId>
        <artifactId>MyAppBootstrap</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>it.myapp.libs</groupId>
        <artifactId>b2b_connecttion</artifactId>
    </dependency>

    <!-- Module Dependencies from our own modules-->
    <dependency>
        <groupId>it.myapp.mymodules</groupId>
        <artifactId>RevenueManager</artifactId>
        <version>${myapp.module.version}</version>
        <classifier>classes</classifier>
    </dependency>

    <!-- 3rd Party Dependency -->
    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-rt</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc7</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-vfs2</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Dependencies for tests -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.jmockit</groupId>
        <artifactId>jmockit</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
0 голосов
/ 02 января 2019

Есть два способа достичь этого -

  1. вы объявляете зависимости в родительском pom в узле <dependencies />, и каждый дочерний элемент извлекает выгоду из зависимости.

  2. Добавьте зависимости в родительском pom под узлом <dependencyManagement /> и в каждом дочернем элементе, который требует этого, добавьте зависимость в узле.Вы можете не устанавливать версию зависимости.

Так, например, если вы объявите это в родительском pom:

<dependencies>
    <dependency>
        <groupId>org.abc</groupId>
        <artifactId>xyz</artifactId>
        <version>your_version</version>
    </dependency>
</dependencies>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.abc</groupId>
            <artifactId>xyz</artifactId>
            <version>your_version</version>
            <scope>your_scope</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...