gpt4 book ai didi

maven - JBoss 7 项目库作为一个模块

转载 作者:行者123 更新时间:2023-12-02 08:43:06 26 4
gpt4 key购买 nike

我项目的war,在添加了一些maven依赖后,大小增加到32MB!

我需要缩小尺寸。谷歌搜索我发现使用模块可能是正确的方法。

最佳做法是什么?将每个库添加为一个新模块?使用“所有库”创建模块?我什至不知道这是否可能。

所以,例如,我有:

<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>5.0.0</version>
</dependency>

我想将“provided”添加到该依赖项,并将 JAR 保留在 JBoss 中,而不将其包含在我的 war 中。

如何?

PS:我知道所有已部署的应用程序都可以使用它。很好。

最佳答案

将应用程序与其库分开对我来说听起来不是一个好主意 - 您正在显着增加应用程序的上下文依赖性,并且如果不首先修补它的内部结构,将无法将应用程序部署到另一台服务器上。这在生产环境中可能是不可能的/不允许的。

一场 32MB 的 war...那又怎样?如今,多出几个 MB 并不是真正的问题。一个业务应用程序有几百 MB 的重量并不少见。

因此,在发出严厉警告后,可以这样做:

转到 JBOSS_HOME/modules 目录并为 Artifact 坐标创建目录层次结构(com.example 依赖项位于/com/example/文件夹中)。

在此文件夹中,创建一个文件夹main

将库 jar 放入主文件夹。

创建一个 module.xml 文件并填充它:

<module xmlns="urn:jboss:module:1.1" name="com.example">
<resources>
<resource-root path="mylib.jar"/>
</resources>
</module>

我不确定是否需要重启服务器。

如果你的模块有它自己的依赖,你可以通过在 module 元素中添加这样的东西来声明它们:

<dependencies>
<module name="com.example.implementation"/>
</dependencies>

我建议将每个库部署在它自己的模块中(如名称所暗示的那样;)模块化。然后您可以单独交换它们。

关于maven - JBoss 7 项目库作为一个模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14852144/

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