Доступ к свойствам проекта из settings.xml - PullRequest
2 голосов
/ 17 сентября 2011

Я пытаюсь активировать профиль в файле settings.xml по значению идентификатора группы pom.Для этого у меня есть:

<settings>
    <profiles>
      <profile>
    <id>imf</id>
    <activation>
      <property>
        <name>project.groupId</name>
        <value>myId</value>
      </property>
    </activation>
    <properties>
     . . .
    </properties>
      </profile>
   </profiles>
 </settings>

Но это не работает.Разве невозможно получить доступ к свойствам проекта из настроек?Справочный материал говорит, что вы можете.

Просто чтобы проверить мое использование элемента активатора свойств, я провел проверку работоспособности, используя набор свойств из командной строки.Действительно, если я передам -Dproject.groupId = myId в командную строку mvn, моя активация будет работать.Это наводит меня на мысль, что свойства проекта просто недоступны в файле settings.xml.

Ответы [ 2 ]

1 голос
/ 17 сентября 2011

Похоже, что ваши конкретные требования не могут быть выполнены так, как вы пытались.

project.groupId как имя свойства (или ключ) ничего не значит для maven.maven понимает (и расширяет) ${project.groupId} и подобные значения в settings.xml или pom.xml.

0 голосов
/ 11 мая 2012

У меня было похожее требование - выбирать между профилями в зависимости от groupId проекта (выбирать между удаленными репозиториями). Затем я заметил, что мои групповые идентификаторы всегда являются именами пакетов в моей иерархии классов Java. И имена пакетов - это просто каталоги в файловой системе. Поэтому мое решение этой проблемы заключалось в использовании тега actication / file / существующие:

  <profiles>
    <profile>
        <id>client1</id>
        <activation>
            <activeByDefault>false</activeByDefault>
            <file>
                <exists>${basedir}/src/main/java/hu/client1</exists>
            </file>
        </activation>
        <repositories>
            <repository>

            </repository>
        </repositories>
    </profile>
    <profile>
        <id>client2</id>
        <activation>
            <activeByDefault>false</activeByDefault>
            <file>
                <exists>${basedir}/src/main/java/hu/client2</exists>
            </file>
        </activation>
        <repositories>
            <repository>

            </repository>
        </repositories>
    </profile>
    <profile>
        <id>client3</id>
        <activation>
            <activeByDefault>false</activeByDefault>
            <file>
                <exists>${basedir}/src/main/java/com/client3</exists>
            </file>
        </activation>
        <repositories>
            <repository>

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