Плагин Maven Resources: сборка не удастся, если каталог не существует - PullRequest
0 голосов
/ 23 апреля 2019

В моем pom.xml ... у меня есть следующие конфигурации:
Плагин сборки:

<plugin>
  <artifactId>maven-resources-plugin</artifactId>
  <executions>
    <execution>
      <id>copy-resources</id>
      <phase>validate</phase>
      <goals>
        <goal>copy-resources</goal>
      </goals>
      <configuration>
        <outputDirectory>${build.directory}/classes/static/</outputDirectory >
        <resources>
          <resource>
            <!-- this is defined in profiles -->
            <directory>${myResourceFolder}</directory>
          </resource>
        </resources>
      </configuration>
    </execution>
  </executions>
</plugin>


Определение профилей:

<profiles>
  <profile>
      <id>development</id>
      <activation>
        <!-- this profile is active by default -->
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <myResourceFolder>/myDevelopmentFolder</myResourceFolder>
      </properties>
  </profile>
  <profile>
      <id>production</id>
      <properties>
        <myResourceFolder>${env.MY_PRODUCTION_FOLDER}</myResourceFolder>
      </properties>
  </profile>
</profiles>


Где $ {myResourceFolder} определен в разных профилях, которые могут быть:

  • / myDevelopmentFolder
  • MY_PRODUCTION_FOLDER

где "/ myDevelopmentFolder" - моя локальная папка разработки, а "MY_PRODUCTION_FOLDER" - любая папка, определенная как переменная среды в производственной сборке.
Эти конфигурации прекрасно компилируются.
Но я хотел добиться, чтобы, если какая-либо из этих папок отсутствует,

maven-resources-plugin должен завершиться ошибкой.


Есть ли способ достичь этого в Maven?

Спасибо,
Artanis

1 Ответ

0 голосов
/ 23 апреля 2019

1) Во-первых, я думаю, что это плохой подход к созданию разных двоичных файлов для разных сред.Лучше объединить все ресурсы и просто использовать надлежащие ресурсы во время выполнения

2) Если вы все еще хотите пойти по этому пути, то вы можете попробовать активировать профиль на отсутствующий файл (https://maven.apache.org/guides/introduction/introduction-to-profiles.html). Этот «сборщик-прерыватель»)профиль должен как-то нарушать сборку. Например, он может включать плагин Maven Enforcer (https://maven.apache.org/enforcer/maven-enforcer-plugin/usage.html), который запрещает плагин ресурсов с пояснительным сообщением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...