Remove file from dependency jar using maven

前端 未结 3 651
说谎
说谎 2020-12-06 10:18

I am trying to remove a file from a dependency jar that I am including in my war file in maven. I am deploying the war to JBoss 5.1 and the jar in question contains a persis

3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-06 10:44

    Not available out of the box AFAIK, you'll have to use the Maven AntRun plugin after package to do a few dirty things:

    • unzip the war in a temp directory
    • unzip the dependency in another temp directory
    • delete the file from the dependency
    • zip the temp directory of the dependency back into a jar
    • move the dependency back in the temp directory of the war
    • zip the temp directory of the webapp back into a war
    • delete the temp directory of the dependency
    • delete the temp directory of the webapp

    The following resources might help

    • ant task to remove files from a jar
    • RE: Removing a file from .jar file

    Now, if the problem is that JBoss is deploying the persistence unit defined in the persistence.xml (and you don't want that), there might be a better solution. It seems that you can declare files to ignore in a jboss-ignore.txt file, for example:

    WEB-INF/lib/dependency.jar/META-INF/persistence.xml
    

    The feature is there, but I've never used it.

    See

    • Excluding persistence.xml from deployment
    • JBoss5 custom metadata files

提交回复
热议问题