Передайте переменные из файла свойств в тег distributionManagement в pom.xml

Итак, у меня есть что-то вроде:

<plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>properties-maven-plugin</artifactId>
            <version>1.0-alpha-1</version>
            <executions>
                <execution>
                    <phase>initialize</phase>
                    <goals>
                        <goal>read-properties</goal>
                    </goals>
                    <configuration>
                        <files>
                            <file>${user.home}/build.properties</file>
                        </files>
                    </configuration>
                </execution>
            </executions>
        </plugin>

и я имеюdistributionManagement лайк:

<distributionManagement>
    <repository>
        <id>local-repo</id>
        <url>file:///${deploy.dir}/${project.artifactId}</url>
    </repository>
</distributionManagement>

У меня нет удаленного репозитория, поэтому я делаю это с помощьюfile:///

${deploy.dir} это свойство изbuild.properties файл, и он не будет принимать значение для этого свойства. Зачем?

 user94484918 мая 2012 г., 20:24
Если вы запускаете команду Maven с-Ddeploy.dir=<yourDirectoryHere> это работает как ожидалось?
 sfat20 мая 2012 г., 17:23
@ user944849, это работает таким образом, но я хотел сделать это из pom.xml
 user94484921 мая 2012 г., 15:45
Правильно. Я был уверен, что<distributionManagement> был интерполирован, когда POM был впервые загружен, и вы подтвердили это.

Ответы на вопрос(2)

Решение Вопроса

вероятно, является тем путем, который я делаю, и тем, что я делаю, чтобы переключаться между нашим производственным и тестовым экземплярами нашего удаленного репозитория.В обсуждении я нашел Похоже, вы можете загрузить свойства для использования в более поздних конфигурациях плагинов, но основные элементы модели maven, такие как<distributionManagement> только свойства интерпретируются при начальной загрузке POM.

(Перемещение комментария для ответа на запрос OP.)

ями распространения. Например:

<profiles>
   <profile>
      <id>repo1</id>
      <distributionManagement>
         <repository>
            <id>repo1-release</id>
            <url>http://.......</url>
         </repository>
      </distributionManagement>
   </profile>

   <profile>
      <id>repo2</id>
      <distributionManagement>
         <repository>
            <id>repo2-release</id>
            <url>http://.......</url>
         </repository>
      </distributionManagement>
   </profile>
   ..
</profiles>

При вызове цели развертывания вы можете выбрать пункт назначения, активировав профиль:

mvn -Prepo1 clean deploy
 sfat21 мая 2012 г., 08:44
@ user944849, который ответил на мой вопрос, спасибо :). Вы можете добавить ответ со своим комментарием, и я отмечу его как принятый ответ.
 18 мая 2012 г., 20:32
Ответ Марка, вероятно, является тем путем, который я делаю, и тем, что я делаю, чтобы переключаться между нашим производственным и тестовым экземплярами нашего удаленного репозитория.Per a discussion I found Похоже, вы можете загрузить свойства для использования в более поздних конфигурациях плагинов, но основные элементы модели maven, такие как<distributionManagement> только свойства интерпретируются при начальной загрузке POM.

Ваш ответ на вопрос