2016-12-13 2 views
3

Я пытаюсь напечатать текущий профиль, который активен при запуске сборки проекта Maven.Maven: Как распечатать текущий профиль на консоли?

Я использую maven-antrun-plugin для печати сообщений на консоли в сочетании с свойством, относящимся к текущему профилю.

Я попытался следующие свойства:

${project.activeProfiles[0].id} 

${project.profiles[0].id} 

Но в обоих случаях он печатает «строка», как написано, без разрешения переменной.

Это мой тест:

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>generate-resources</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <tasks> 
          <echo>current active profile: ${project.activeProfiles[0].id}</echo> 
         </tasks> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Но это результат, который я получаю:

main: 
[echo] current active profile: ${project.activeProfiles[0].id} 

Любое предложение будет оценено.

Спасибо.

+0

Почему вы хотите сделать конкретно, что зависит от профиля? – Tunaki

ответ

2

maven-help-plugin предлагает то, что вам нужно. У него active-profiles гол.

Вы можете добавить его в свой pom или даже вызвать из командной строки (включите его в свой вызов сборки maven). Как узнать, какие профили действуют во время сборки? раздел Maven profile introduction page покажет вам, как это сделать. Короче говоря:

mvn help:active-profiles 

Как это не работает для вас (см комментарии) здесь другое решение:

Я думаю, что активные профили (может быть больше, чем один!) Не распространяются как available variables - но свойства есть.

Так установить пользовательское свойство в разделе профиля и использовать его, как

<profiles> 
    <profile> 
     <id>default</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <properties> 
      <myProfile>default</myProfile> 
     </properties> 
    </profile> 
    <profile> 
     <id>debug</id> 
     <activation> 
      <property> 
       <name>debug</name> 
      </property> 
     </activation> 
     <properties> 
      <myProfile>debug</myProfile> 
     </properties> 
    </profile> 
</profiles> 

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>generate-resources</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <tasks> 
          <echo>current active profile: ${myProfile}</echo> 
         </tasks> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
+0

Да, но это не то, что мне нужно. Я хочу напечатать профиль, доступ к которому будет иметь переменная, потому что я хочу сделать некоторые операции на основе профиля. –

+1

Посмотрите мое обновление. – FrVaBe

+0

Точно, это то, что мне нужно! Благодаря! –

Смежные вопросы