Удалить файл из jar зависимостей с помощью maven
Я пытаюсь удалить файл из jar зависимостей, который я включаю в свой файл war в maven. Я развертываю войну в JBoss 5.1, и рассматриваемая банка содержит настойчивость.xml-файл, который мне не нужен.
вот что происходит:
my-webapp.war
|
`-- WEB-INF
|
`-- lib
|
`-- dependency.jar
|
`-- META-INF
|
`-- persistence.xml
когда я строю свою войну, я хочу удалить настойчивость.xml кто-нибудь знает, можно ли это сделать легко?
3 ответов
недоступно из коробки AFAIK, вам придется использовать плагин Maven AntRun после package
сделать несколько грязных вещей:
- распаковать войну во временном каталоге
- распакуйте зависимость в другом временном каталоге
- удалить файл из зависимости
- zip временный каталог зависимости обратно в банку
- переместить зависимость обратно во временную директорию войны
- zip временный каталог webapp обратно в войну
- удалить временный каталог зависимости
- удалить временный каталог webapp
следующие ресурсы могут помочь
теперь, если проблема в том, что JBoss развертывает блок персистентности, определенный в persistence.xml
(и вы не хотите это), возможно, есть лучшее решение. Кажется, что вы можете объявить файлы для игнорирования в , например:
WEB-INF/lib/dependency.jar/META-INF/persistence.xml
эта функция есть, но я никогда не использовал его.
посмотреть
вы можете достичь этого с помощью Плагин TrueZIP Maven.
Это должно работать для вашего случая:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>truezip-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>remove-a-file-in-sub-archive</id>
<goals>
<goal>remove</goal>
</goals>
<phase>package</phase>
<configuration>
<fileset>
<directory>target/my-webapp.war/WEB-INF/lib/dependency.jar/META-INF</directory>
<includes>
<include>persistence.xml</include>
</includes>
</fileset>
</configuration>
</execution>
</executions>
</plugin>
см. Также примеры.
Я думаю, вам придется использовать плагин Maven shade (см. ссылку ниже)
либо создайте Über-jar, который включает вашу зависимость минус persistence-xml, либо просто преобразуйте зависимость во что-то новое, у которого нет постоянства.XML.
Это должен быть путь:
http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html
Шон