繁体   English   中英

战争外部依赖覆盖 - 将 jars 从 WEB-INF/lib-new 移动到 WEB-INF/lib

[英]War external dependency overlay - move jars from WEB-INF/lib-new to WEB-INF/lib

我正在开发一个具有战争外部依赖项的 maven 项目(我们称之为战争依赖项 WAR-DEP

在构建之后和 package 阶段期间,我正在获取WAR-DEP的内容,并使用 maven-war 插件的覆盖功能将其与当前构建的内容合并。

WAR-DEP中,我们在它的WEB-INF/lib文件夹中有一些必需的 jars,因此通过覆盖,我们最终获得了最终战争所需的一切,但是当为我们提供WAR-DEP战争的项目添加了一个新的项目时,我们的问题就开始了WEB-INF/lib-new中的文件夹,并将我们之前在WEB-INF/lib文件夹中的一些 jars 移动到这个新文件夹WEB-INF/lib-new

在使用这个新版本的WAR-DEP构建后,覆盖按预期工作,所以我们最终在 WEB-INF 中有两个文件夹(lib 和 lib-new),并且我们的应用程序停止工作,因为这个WEB-INF/lib-new 是tomcat 服务器无法识别 因此,在不更改 tomcat 端的类路径的情况下,有没有办法可以在生成战争之前将 lib-new 的内容移动到 lib 文件夹中? 我的意思是例如在覆盖期间,但我不确定如何执行此操作。 感谢您的投入。

maven-war-plugin没有所需的功能,但是maven-dependency-plugin 可能会有所帮助,smth。 喜欢:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>3.3.0</version>
    <executions>
        <execution>
            <id>unpack-lib-new</id>
            <goals>
                <goal>unpack</goal>
            </goals>
            <phase>prepare-package</phase>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>dep-group-id</groupId>
                        <artifactId>dep-artifiact-id</artifactId>
                        <version>dep-version</version>
                        <type>war</type>
                        <outputDirectory>${project.build.directory}/${build.finalName}/WEB-INF/lib</outputDirectory>
                        <includes>WEB-INF/lib-new/*</includes>
                        <fileMappers>
                            <org.codehaus.plexus.components.io.filemappers.FlattenFileMapper/>
                        </fileMappers>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.3.2</version>
    <configuration>
        ...
        <overlays>
            <!-- current project -->
            <overlay/>
            <overlay>
                <id>dep-skip-lib-new</id>
                <groupId>dep-group-id</groupId>
                <artifactId>dep-artifact-id</artifactId>
                <excludes>
                    <exclude>WEB-INF/lib-new/*</exclude>
                </excludes>
            </overlay>
        </overlays>
        ...
    </configuration>
</plugin>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM