我正在尝试从我在maven中的war文件中包含的依赖jar中删除一个文件。我正在将战争部署到JBoss 5.1,并且有问题的jar包含一个我不想要的persistence.xml文件。
以下是发生的事情:
my-webapp.war
|
`-- WEB-INF
|
`-- lib
|
`-- dependency.jar
|
`-- META-INF
|
`-- persistence.xml
当我构建我的战争时,我想删除persistence.xml任何人都知道这是否可以轻松完成?
答案 0 :(得分:11)
您可以使用TrueZIP Maven Plugin实现此目的。
这适用于您的用例:
<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>
另见the examples。
答案 1 :(得分:5)
AFAIK开箱即用,您必须在package
之后使用Maven AntRun插件做一些脏事:
现在,如果问题是JBoss正在部署persistence.xml
中定义的持久性单元(并且您不希望这样),那么可能有更好的解决方案。您似乎可以在jboss-ignore.txt
文件中声明要忽略的文件,例如:
WEB-INF/lib/dependency.jar/META-INF/persistence.xml
功能就在那里,但我从未使用过它。
答案 2 :(得分:0)
我猜你必须使用maven shade插件(见下面的链接)
构建一个包含依赖项减去persistence-xml的Über-jar,或者只是将依赖项转换为没有persistence.xml的新内容。
这应该是要走的路:
http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html
肖恩