热来添加战争的依赖性,而无需覆盖它

发布于 2025-01-20 12:10:06 字数 1782 浏览 0 评论 0原文

我们正在开发一个Java Web应用程序,该应用程序将在Tomcat9中部署为战争文件。

由于系统体系结构,我们希望有一些需要部署单独的战争文件的战争文件。他们是商业化的,无法控制。

我想在POM中添加此单独的战争作为运行时,因此我们用来部署应用程序的POM知道它们是需要的,并且部署了任何战争依赖性I WebApps dir。

我遇到的问题是,在包括此战争运行时依赖关系的那一刻,包阶段将它们添加到我们的战争应用程序文件中。

我想要的是避免将此战争文件添加为战争文件中的叠加。

我没有发现有关如何避免这种行为行为的参考。

由于NDA约束,我无法共享真实的POM文件。这是我现在构建的不完整示例。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>myOrg</groupId>
        <artifactId>myApp</artifactId>
        <version>1.0</version>
    </parent>

    <artifactId>myApp-war</artifactId>
    <packaging>war</packaging>
    <name>internal-app-war</name>
    <version>2.8</version>

    <dependencies>
        <dependency>
            <groupId>com.exampleorg</groupId>
            <artifactId>ExampleA</artifactId>
            <type>war</type>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.exampleorg</groupId>
            <artifactId>ExampleB</artifactId>
            <type>war</type>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            All jar dependencies with compile scope
        </dependency>
    </dependencies>
</project>

任何人都可以提出一种实现这一目标的方法吗?

提前致谢。

We are developing a Java web application to be deployed as a war file in Tomcat9.

We want to have some other war files that need to be deployed separate war files due to the system architecture. They are commercial and out of my control.

I want to have this separate wars added in the pom as runtime, so pom we use to deploy the application knows that they are needed and deploys also any war dependency i the webapps dir.

The problem I have is that in the moment I include this war runtime dependencies, the package phase add them as overlays to our war application file.

What I want is to avoid having this war files added as overlays to our war file.

I have found no reference on how to avoid that maven behavior.

I can't share the real pom files due to NDA constraints. This is a incomplete example of what I have build now.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>myOrg</groupId>
        <artifactId>myApp</artifactId>
        <version>1.0</version>
    </parent>

    <artifactId>myApp-war</artifactId>
    <packaging>war</packaging>
    <name>internal-app-war</name>
    <version>2.8</version>

    <dependencies>
        <dependency>
            <groupId>com.exampleorg</groupId>
            <artifactId>ExampleA</artifactId>
            <type>war</type>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.exampleorg</groupId>
            <artifactId>ExampleB</artifactId>
            <type>war</type>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            All jar dependencies with compile scope
        </dependency>
    </dependencies>
</project>

Can any one propose a way to achieve that?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北城孤痞 2025-01-27 12:10:06

您在这里误用了

如果您想确保其他 WAR 部署在同一服务器上,那么您需要在 Maven 外部进行管理,例如使用 Puppet/Chef/... 或通过 docker 容器。

Maven 依赖项仅适用于构建本身。

You are misusing <dependencies> here.

If you want to make sure that other WARs are deployed on the same server, then you need to manage that outside of Maven, e.g. with Puppet/Chef/... or through a docker container.

Maven dependencies are only meant for the build itself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文