две версии зависимостей в maven - PullRequest
0 голосов
/ 13 сентября 2011

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

означает, что у меня есть

<dependency>
            <groupId>api</groupId>
            <artifactId>api</artifactId>
            <version>0.0.1-SNAPSHOT</version>

        </dependency>

        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>

        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>

        </dependency>

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

mvn package -Dprovided

моя эффективная POM будет

<dependency>
            <groupId>nmsc</groupId>
            <artifactId>nmsc_api</artifactId>
            <version>0.0.1-SNAPSHOT</version>

        </dependency>

        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <scope>provided</scope>
        </dependency>

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

1 Ответ

2 голосов
/ 13 сентября 2011

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

<properties>
    <myExeScope>compile<myExeScope>
</properties>

<dependencies>
    <dependency>
        <groupId>nmsc</groupId>
        <artifactId>nmsc_api</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <scope>${myExeScope}</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <scope>${myExeScope}</scope>
    </dependency>
</dependencies>

Тогда вы сможете изменить область указанных зависимостей:

mvn -DmyExeScope=provided

Обратите внимание, я не скомпилировал это, поэтому, если есть опечатки, исправьте их и запишите исправление.

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