Переопределяющее свойство в тесте интеграции архетипа maven - PullRequest
0 голосов
/ 03 июля 2019

Я генерирую проект из архетипа, и у меня есть свойство в pom этого сгенерированного проекта (archetype-resources / pom):

  <properties>
    <myProperty>productionValue</myProperty>
  </properties>

и следующая верная конфигурация:

      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.22.2</version>
        <configuration>
          <argLine>
            -Djava.library.path=${myProperty}
          </argLine>
        </configuration>
      </plugin>

Я хочу, чтобы myProperty был переопределен значением из моего архетипа pom, когда я запускаю ИТ, и остаюсь таким же, когда пользователи генерируют этот проект. Как мне это сделать?

Я попытался установить его в archetype.properties файле, но в нем есть переменная: myProperty=${project.basedir}/IT/path. Я хочу, чтобы ${project.basedir} был основателем проекта архетипа в случае ИТ, а не сгенерированного проекта, а это не тот случай, когда я делаю это так.

Другой способ, которым я попытался, - использовать конфигурацию плагина:

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-archetype-plugin</artifactId>
          <version>${maven-archetype.version}</version>
          <executions>
            <execution>
                <goals>
                    <goal>integration-test</goal>
                </goals>
              <configuration>
                <properties>
                  <myProperty>${project.basedir}/IT/path</myProperty>
                </properties>
              </configuration>
            </execution>
          </executions>
        </plugin>

Но это не сработало, myProperty в сгенерированном проекте не изменилось. Что я делаю не так? Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 07 июля 2019

Проблема заключалась в том, что я поместил

<configuration>
  <properties>
    <myProperty>${project.basedir}/IT/path</myProperty>
  </properties>
</configuration>

в тег <execution>, а не <plugin>.После того, как я это сделал, все заработало как положено.

...