2014-07-23 2 views
0

У меня есть модульный проект maven, который содержит 3 модуля. В одном из них (WEB), переменная профиль не распознается как переменная окружения, но он принимает Que настоящее имя его, как показано ниже:Maven Profile Переменный веб-проект не работает

<Principal POM> 
    <Module App-core> 
    <Module ejb>  
    <Module web> 

В главном POM, есть 3 профилей РВП имеют один и тот же профиль СВОЙСТВ с различными значениями:

<profile1> 
    <environment>value1</environment> 

<profile2> 
    <environment>value2</environment> 

<profile3> 
    <environment>value3</environment> 

Эта переменная используется в качестве переменной классификаторов для зависимостей, как показано ниже:

<dependency> 
    <groupId>com.test</groupId> 
    <artifactId>app-core</artifactId> 
    <version>1.0.0</version> 
    <classifier>${environment}</classifier> 
</dependency> 

в мавена компилировать фазу, только на веб-Pro ject, он не изменяет имя переменной с переменным значением.

Любая помощь?

+0

Как включить профиль? – user944849

ответ

0

Я решить эту проблему.

Я воспроизвел зависимости в профилях. Я имел кратные зависимости

Это код на Профиль1

<profile> 
    <id>profile1</id> 
<properties> 
<environment>value1</environment> 
</properties> 
    <dependency> 
     <groupId>com.test</groupId> 
     <artifactId>app-core</artifactId> 
     <version>1.0.0</version> 
     <classifier>${environment}</classifier> 
    </dependency> 
</profile> 

Это код на profiles2

<profile> 
    <id>profile2</id> 
<properties> 
<environment>value2</environment> 
</properties> 
    <dependency> 
     <groupId>com.test</groupId> 
     <artifactId>app-core</artifactId> 
     <version>1.0.0</version> 
     <classifier>${environment}</classifier> 
    </dependency> 
</profile> 

И этот код на profile3

<profile> 
    <id>profile3</id> 
<properties> 
<environment>value3</environment> 
</properties> 
    <dependency> 
     <groupId>com.test</groupId> 
     <artifactId>app-core</artifactId> 
     <version>1.0.0</version> 
     <classifier>${environment}</classifier> 
    </dependency> 
</profile> 
0

Профиль tags1 profile2 profile3 не позволяет заменить свойство. Для этого нужно изменить родительский POM таким образом

<project> 
    <build> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
      </resource> 
     </resources> 
    </build> 

    <profiles> 
     <profile> 
      <id>profile1</id> 
       <properties> 
        <environment>value1</environment> 
       </properties> 
     </profile> 

     <profile> 
      <id>profile2</id> 
       <properties> 
        <environment>value2</environment> 
       </properties> 
     </profile> 

     <profile> 
      <id>profile3</id> 
       <properties> 
        <environment>value2</environment> 
       </properties> 
     </profile> 
    </profiles> 
</project> 

Теперь вы должны запустить МВН установить -P profile1 yourProjectName

+0

Я решил проблему. Ваш пример не работает. благодаря –

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