исключить зависимость от войны - PullRequest
2 голосов
/ 20 августа 2010

как исключить зависимость от войны, но использовать ее до тестирования или разработки

Ответы [ 3 ]

4 голосов
/ 20 августа 2010

Как и предполагали другие, путь = предоставленный или объем = тест - это путь.

  1. <scope>provided</scope> подразумевает, что библиотека будет присутствовать в целевой системе и не нуждается в развертывании. (Или в некоторых случаях, например, log4j не должен быть развернут, потому что в противном случае возникнут проблемы с загрузчиком классов)
  2. <scope>test</scope> предполагает, что зависимость необходима только для тестового кода (и, следовательно, не будет необходима или предоставлена ​​в целевой системе)

Вот соответствующая документация:

Введение в механизм зависимостей

В примечании по теме: Другой вариант использования - это тот случай, когда вы используете разные базы данных на разных серверах. Вы можете использовать профили для развертывания правильных драйверов:

<profiles>
    <profile>
        <id>testserver</id>
        <dependencies>
            <dependency>
            ... (database driver a)
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>productionserver</id>
        <dependencies>
            <dependency>
            ... (database driver b)
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>localdevelopment</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <dependencies>
            <dependency>
            ... (database driver c)
            </dependency>
        </dependencies>
    </profile>
</profiles>

Таким образом, если вы просто позвоните mvn install, драйвер c будет развернут, тогда как mvn install -Ptestserver и mvn install -Pproductionserver будут включать драйверы a или b соответственно.

1 голос
/ 20 августа 2010

Вы делаете это с тегом <scope>provided</scope>.

    <dependency>
        <groupId>org.livetribe</groupId>
        <artifactId>livetribe-jsr223</artifactId>
        <version>2.0.6</version>
        <scope>provided</scope>
    </dependency>
1 голос
/ 20 августа 2010

В теге зависимости есть возможность указать область действия с. Вы можете указать область действия в качестве теста, и она не будет включена в вашу войну, а будет использоваться только для испытаний.

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