我试图从我在maven中的war文件中包含的依赖jar中删除一个文件.我正在将战争部署到JBoss 5.1,并且有问题的jar包含我不想要的persistence.xml文件.
这是发生了什么:
my-webapp.war
|
`-- WEB-INF
|
`-- lib
|
`-- dependency.jar
|
`-- META-INF
|
`-- persistence.xml
Run Code Online (Sandbox Code Playgroud)
当我构建我的战争时,我想删除persistence.xml任何人都知道这是否可以轻松完成?
And*_*rea 11
您可以使用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>
Run Code Online (Sandbox Code Playgroud)
另见示例.
没有开箱即用的AFAIK,你必须使用Maven AntRun插件后package做一些脏东西:
现在,如果问题是JBoss正在部署persistence.xml(并且你不想要)中定义的持久性单元,那么可能有更好的解决方案.您似乎可以在jboss-ignore.txt文件中声明要忽略的文件,例如:
WEB-INF/lib/dependency.jar/META-INF/persistence.xml
Run Code Online (Sandbox Code Playgroud)
功能就在那里,但我从未使用它.