Полный поиск и замена строк в исходных файлах при копировании ресурсов

У меня есть некоторые исходные файлы Java, которые используют префикс пакета (они эмулируют некоторые классы JDK). Я использую эти файлы с префиксом для выполнения против некоторых модульных тестов. Если тесты передают, я хочу произвести банку, которая содержит исходные файлы, но с префиксом пакета, удаленным из всех файлов Java.

Я использую знатока для сборок. Кто-либо знает о способе сделать это? По существу то, что я хочу, является чем-то как плагин ресурсов фильтрация функции, но это делает надлежащий поиск и замену (как: s/my.package.prefix.//g), вместо того, чтобы фильтровать на $ {Вар}.

33
задан Dean Povey 12 January 2012 в 18:00
поделиться

1 ответ

Это можно решить с помощью плагина Antrun. Во-первых, исходные тексты необходимо скопировать в целевую директорию, при этом:

<build>
  ...
  <resources>
    <resource>
      <directory>src/main/java</directory>
      <includes>
        <include>**/*.java</include>
      </includes>
    </resource>
  </resources>
  ...
</build>

Во-вторых, вы используете задачу replace плагина Antrun для замены файлов на этапе подготовки пакета

<build>
    ...
  <plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
      <execution>
        <phase>prepare-package</phase>
        <configuration>
          <tasks>
            <replace token= "my.package.prefix." value="" dir="target/classes">                                 
              <include name="**/*.java"/>
            </replace>
          </tasks>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
  ...
</build>

Это позволит скопировать исходные тексты в целевые/классы на этапе подготовки пакета, выполнить поиск и замену файлов в каталоге target/classes на этапе подготовки пакета и, наконец, они будут повреждены на этапе пакета.

27
ответ дан 27 November 2019 в 17:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: