有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将JARFile添加到webinf/lib文件夹,而不将其包含在pom中。xml

我正在使用JBoss编写一个应用服务器。应用程序由Maven编译并打包为WAR。现在我想将一些类外部化。我创建了另一个maven项目,它打包为JAR

我相信JAR有正确的目录树。它包含一个META-INF目录和作为目录的包结构,类文件驻留在其中

我在网上读到,我可以将这个JAR添加到app服务器中,方法是将它放在src\main\webapp\WEB-INF\lib中,而不用在pom中进一步提及它。appserver的xml(在某些情况下,这些JAR应该是插件,因此在pom.xml中添加依赖项不是一个选项)

当我编译服务器时,JAR被正确地复制到WEB-INF\lib下的WAR中,以及其他外部依赖项

然而,当我试图在appserver中使用该类时(编写这样一个类的import语句就足够了),maven会抱怨它找不到该类

我试图在网上查找信息,但我能找到的只是这样做的方式

有人知道我在哪里可以进一步寻找出问题的线索吗


共 (2) 个答案

  1. # 1 楼答案

    如果你说的是“插件”,那么无论如何你都不应该直接在代码中导入类。一种常见的方法是定义另一个带有插件将实现的接口的模块,然后让主webapp和插件项目都依赖于该接口模块。在主应用程序中,通过反射加载插件类,并将它们转换到适当的接口。这样,在编译宿主应用程序时,就不会直接依赖于插件的具体类

  2. # 2 楼答案

    将jar文件放入src\main\webapp\WEB-INF\lib很麻烦,而且显然是错误的

    代码不编译的原因是maven编译器插件使用定义的源路径和(提供并编译范围)依赖项

    你可以改变这一点,但结果很难理解。此外,您必须手动更新jar文件(顺便说一句,它在源代码中没有位置)

    这就是依赖关系管理的目的

    不要违背你的工具。如果您的项目需要来自这个jar的类,那么它是一个依赖项。所以就这样宣布吧