gpt4 book ai didi

web-applications - Maven 对 Web 应用程序的依赖

转载 作者:行者123 更新时间:2023-12-02 02:24:34 25 4
gpt4 key购买 nike

我想到了maven的依赖系统,我问自己,是否可以依赖一个web应用程序(*.war文件)?我想将应用程序的核心模块维护为普通的 Web 应用程序。更具体的实现将使用核心作为依赖并扩展它。

例如,我有以下内容:

  1. Core.war//后端
  2. ConcreteProject1.war//客户 1 的前端
  3. ConcreteProject2.war//客户 2 的前端

具体项目现在应该依赖于 Core.war 并包括所有网页、其他资源、源文件等,但如果在上下文路径中存在同名文件,则具体项目应该覆盖原来的。如果可以合并这样的文件就更好了!想想例如一个日志配置文件,该文件将与自定义文件合并以对客户端进行特殊处理。还有许多其他用例,它会非常有用。

谁能给我一些提示,告诉我如何在我的构建过程中获得这种行为?

最佳答案

你需要这些方面的东西......

假设您有两个模块 - core 和 web-module1,并且您最终需要在 war 中组装它们。

核心的POM:

<project>

<groupId>com.foo</groupId>
<artifactId>core</artifactId>
<packaging>war</packaging>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archiveClasses>false</archiveClasses>
<webXml>${basedir}/src/main/webapp/WEB-INF/web.xml</webXml>

<webappDirectory>${project.build.directory}/mywebapp</webappDirectory>
</configuration>
</plugin>

</plugins>
</build>

</project>

核心依赖模块的POM:

<project>

<modelVersion>4.0.0</modelVersion>

<groupId>com.foo</groupId>
<artifactId>web-module1</artifactId>
<packaging>war</packaging>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>

<overlays>
<overlay>
<excludes>
<exclude>**/web.xml</exclude>
</excludes>
</overlay>
</overlays>
</configuration>
</plugin>

</plugins>
</build>

<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>core</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
<type>war</type>
</dependency>
</dependencies>

</project>

程序集:

<project>

<modelVersion>4.0.0</modelVersion>

<groupId>com.foo</groupId>
<artifactId>web-assembly</artifactId>
<packaging>war</packaging>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archiveClasses>false</archiveClasses>
<webXml>${basedir}/src/main/webapp/WEB-INF/web.xml</webXml>

<webResources>
<resource>
<directory>${basedir}/src/main/webapp/WEB-INF</directory>
<includes>
<include>*.xml</include>
</includes>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>

<webappDirectory>${project.build.directory}/mywebapp</webappDirectory>
<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>

<overlays>
<overlay>
<excludes>
<exclude>**/web.xml</exclude>
</excludes>
</overlay>
</overlays>
</configuration>
</plugin>

</plugins>
</build>

<dependencies>
<dependency>
<groupId>com.foo</groupId>
<artifactId>core</artifactId>
<version>${project.version}</version>
<type>war</type>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>web-module1</artifactId>
<version>${project.version}</version>
<type>war</type>
</dependency>
</dependencies>

</project>

关于web-applications - Maven 对 Web 应用程序的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6532191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com