当前位置: 首页 > 知识库问答 >
问题:

Gradle War在WEB-INF/lib下添加额外的jar文件

贺英悟
2023-03-14

我是新手。与Gradle我有多个项目构建文件。大多数项目构建文件都经过了适当的配置,工作良好,并生成了正确的输出。我正在尝试将其中一个项目从ANT build转换为Gradle build。我能够编译Java文件,并且能够生成WAR归档。

我在生成的WAR文件中注意到的一件事是,WEB-INF/lib目录中包含了额外的JAR文件。当我从ANT build system构建项目时,只有很少的jar文件(大约10-12个),但使用gradle时,它包含了很多额外的jar文件(大约90-92个)。我在目录结构中有jar文件,应该包括在内。

下面是build.gradle文件中的依赖项块:

dependencies {
    compile fileTree(dir: 'lib', include: '*.jar')
}

我是个新手。所以我可能错过了一些需要照顾的点,但我不知道是哪些。有谁能指导我在多项目分级构建系统中需要注意依赖关系管理的哪些点吗?这个问题的解决办法是什么?

共有1个答案

楮庆
2023-03-14

您可以将JAR添加到WEB-INF/lib中,将所需的文件夹添加到war插件配置中:

war {
 classpath fileTree('desiredFolder') 
}

摘自https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.war.html

classpath要包含在WAR存档中的类路径。这个类路径中的任何JAR或ZIP文件都包含在WEB-INF/lib目录中。这个类路径中的任何目录都包含在WEB-INF/CLASSS目录中。

希望这对你有帮助!

 类似资料:
  • 问题内容: 我正在使用Eclipse,我需要能够将Java库(JAR文件)添加到Web应用程序的文件夹中。我该如何实现? 问题答案: 将jar文件添加到您的WEB-INF / lib文件夹中。 在Eclipse中右键单击您的项目,然后转到“构建路径>配置构建路径” 添加“ Web应用程序库”库 这将确保所有WEB-INF / lib jar都包含在类路径中。

  • 我在webapp/WEB-INF/lib/文件夹下添加了一个依赖项。 当我使用maven构建时,我希望在war中将它复制到WEB-INF/lib,而不是WEB-INF/classes/WEB-INF/lib。我正在寻找这是使用maven本身来完成的。 我已经在pom文件中提到了打包作为战争,但是依赖项没有被复制。我是不是在pom文件里漏掉了什么。我已经复制了下面的pom: 附上战争内容截图。

  • 同时,我也想坚持使用动态Web项目或将其改为Maven项目。

  • 根据这个问题,我创建了一个实现Catalina LifecycleListener类的类。 如何在Tomcat启动时运行脚本? 当我将JAR文件放置在webapps/root/web-inf/lib中时,Tomcat启动失败,出现类未找到的异常: java.lang.ClassNotFoundException:Net.Company.Tomcat.StartupEventHookListener

  • 如何从WEB-INF\lib\someName加载(从代码)所需的文件(*.txt)。罐子 我尝试了机制: 但它仅在所需文件位于WEB-INF\class文件夹中时才起作用。 然后我尝试在jar中使用所需文件创建META-INF\资源文件夹。但它没有生效。

  • 我知道有关这方面的问题已经得到了回答,但在我的搜索过程中,我还没有遇到这个问题得到了回答。 我一直试图将导入的JAR文件包含在spring应用程序的构建(如下所示)中,但我所做的一切都不是解决方案。在使用Tomcat和Ant构建Eclipse时,我收到“Package dousnot exist”错误,因为它在WEB-INF/lib文件夹中找不到JAR文件(显然)。Eclipse不允许我将文件从引