Maven 3 Свойства профиля - улучшение или ошибка? - PullRequest
3 голосов
/ 17 ноября 2010

В Maven 2 я смог установить свойства профиля следующим образом:

<profiles>
    <profile>
        <id>test</id>
        <properties>
            <region>test</region>
            <application-url>http://localhost:8080/myTestApp</application-url>
            <cookie-name>TestCookie</cookie-name>
        </properties>
    </profile>

    <profile>
        <id>production</id>
        <properties>
            <region>production</region>
            <application-url>http://prodserver/myProductionApp</application-url>
            <cookie-name>ProductionCookie</cookie-name>
        </properties>
    </profile>
<profiles>

Во время компиляции Maven заменит эти значения конфигурации в моих bean-компонентах Spring.Например, если бы у меня был определенный bean-компонент Spring:

<bean id="cookie-name" class="java.lang.String">
    <constructor-arg value="${cookie-name}"/>
</bean>

, и я указывал -P test, когда я собирал проект, Maven установил бы, что bean-компонент должен выглядеть так:

и когда я указал -P production, maven снова заменил текст на правильное свойство

<bean id="cookie-name" class="java.lang.String">
    <constructor-arg value="ProductionCookie"/>
</bean>

Поскольку число поддерживаемых нами сред и клиентов увеличилось, я стал использовать это преимуществофункциональность.

Я пытался перейти на Maven 3, но похоже, что это поведение исчезло или не работает.Я не могу найти то, что было заменено.

Кто-нибудь знает, как или можно ли перейти на Maven3, сохранив это поведение?

Ответы [ 3 ]

4 голосов
/ 16 декабря 2010

Может публиковать только 1 ссылку за раз, и, по-видимому, только один ответ каждые 3 минуты: - (

http://jira.codehaus.org/browse/MRESOURCES-117

4 голосов
/ 19 ноября 2010

Я пытался перейти на Maven 3, но похоже, что это поведение исчезло или нарушено.Я не могу найти то, что было заменено.

Фильтрация ресурсов прекрасно работает с Maven 3. Учитывая следующую структуру проекта:

.
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── stackoverflow
    │   │           └── App.java
    │   └── resources
    │       └── beans.xml
    └── test
        └── java
            └── com
                └── stackoverflow
                    └── AppTest.java

Со следующим pom.xml:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.stackoverflow</groupId>
  <artifactId>Q4206883</artifactId>
  <version>1.0-SNAPSHOT</version>
  ...
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>
  <profiles>
    <profile>
      <id>test</id>
      <properties>
        <region>test</region>
        <application-url>http://localhost:8080/myTestApp</application-url>
        <cookie-name>TestCookie</cookie-name>
      </properties>
    </profile>
    <profile>
      <id>production</id>
      <properties>
        <region>production</region>
        <application-url>http://prodserver/myProductionApp</application-url>
        <cookie-name>ProductionCookie</cookie-name>
      </properties>
    </profile>
  </profiles>
</project>

И где beans.xml содержит:

<bean id="cookie-name" class="java.lang.String">
    <constructor-arg value="${cookie-name}"/>
</bean>

Запуск maven с любым из профилей, например:

$ mvn -P test process-resources 
[INFO] Scanning for projects...
...

Дает ожидаемый результат:

$ cat target/classes/beans.xml 
<bean id="cookie-name" class="java.lang.String">
    <constructor-arg value="TestCookie"/>
</bean>

Протестировано с:

$ mvn --version
Apache Maven 3.0 (r1004208; 2010-10-04 13:50:56+0200)
Java version: 1.6.0_22
Java home: /usr/lib/jvm/java-6-sun-1.6.0.22/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.35-22-generic" arch: "i386" Family: "unix"

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

2 голосов
/ 16 декабря 2010

Последняя версия плагина maven-resources-2.4 (2.4.3) не работает.

http://jira.codehaus.org/browse/MRESOURCES-104

...