У меня есть некоторые исходные файлы Java, которые используют префикс пакета (они эмулируют некоторые классы JDK). Я использую эти файлы с префиксом для выполнения против некоторых модульных тестов. Если тесты передают, я хочу произвести банку, которая содержит исходные файлы, но с префиксом пакета, удаленным из всех файлов Java.
Я использую знатока для сборок. Кто-либо знает о способе сделать это? По существу то, что я хочу, является чем-то как плагин ресурсов фильтрация функции, но это делает надлежащий поиск и замену (как: s/my.package.prefix.//g), вместо того, чтобы фильтровать на $ {Вар}.
Это можно решить с помощью плагина 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 на этапе подготовки пакета и, наконец, они будут повреждены на этапе пакета.