Когда решаются свойства? - PullRequest
2 голосов
/ 25 января 2011

Я определил профиль на моем base-pom , который использует свойство, которое определено под-помпой (местоположение развертывания appserver- модуль). Профиль должен использоваться после первоначальной полной сборки и, таким образом, наследоваться всем подпонам.

Вопрос в том, как / когда разрешаются такие свойства: при первоначальной полной сборке или при локальной сборке определенного подмодуля?

<profile>
  <id>quickdeploy</id>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <outputDirectory>${ear.path}</outputDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
</profile>

${ear.path} определен в подмодуле ...

1 Ответ

0 голосов
/ 25 февраля 2011

Я только что опробовал ваш вопрос, создал два артефакта с помощью m2eclipse.Первый - это q4794952.base, который представляет собой простой проект maven и его тип установлен в pom .Затем я создал второй артефакт из (правой кнопкой мыши на базовом проекте, New => Maven => Maven Module), который автоматически создает родительский тег и (под) модуль внутри базового артефакта.

При использованииСтруктура модуля, подобная созданной в процессе выше (или в общем, где модуль известен по тегу), свойство из подмодуля известно «основанию» и будет разрешено в «полной сборке» (как видно изиспользуя help: эффективный pom и результат сборки, конечно).Если вы создаете только подмодуль, он также разрешается, потому что профиль взят из родительского pom, а свойство установлено в (sub) модуле.

Вот мой «basepom»:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.stackoverflow</groupId>
  <artifactId>q4794952.base</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  <profiles>
    <profile>
    <id>quickdeploy</id>
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <configuration>
            <outputDirectory>${ear.path}</outputDirectory>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
  </profiles>
  <modules>
    <module>q4794952.sub</module>
  </modules>
</project>
...