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

Gradle不向WAR的WEB-INF/lib文件夹添加传递依赖项

仲孙阳
2023-03-14

我有一个产生战争的网络项目。war添加了一个jar(我的另一个项目发布在外部repo上)作为编译依赖项。这个jar有自己的编译依赖项,它列在jar的pom文件中,也列在项目的构建脚本中(这是一个Gradle项目)。我希望将jar及其所有依赖项添加到WAR的WEB-INF/lib文件夹中。然而,当我用Gradle构建web项目时,只添加了直接依赖项,而不添加传递依赖项。

下面是我的web项目的构建脚本:

apply plugin: 'war'

repositories {     
    maven {url "http://repo-url"}
}

configurations.all {
    resolutionStrategy {
        cacheChangingModulesFor 0, 'seconds'
    }
}

dependencies {

    compile('com.company.group:artifact-name:1.0.0-SNAPSHOT') {
        changing = true
        transitive = true
    }
}

com.company.group:artifact-name:1.0.0-snapshot确实有自己的POM,它列出了以下依赖项:

<dependency>
<groupId>us.codecraft</groupId>
<artifactId>xsoup</artifactId>
<version>0.2.0</version>
<scope>compile</scope>
</dependency>

此外,我还将cacheChangingModulesFor设置为0秒,以便每次都有效地使用快照jar的最新版本。

我遇到的问题是,'us.codecraft:xsoup:0.2.0'工件没有包含在war中,尽管它是war的传递依赖项。

有什么想法吗?如果有什么不清楚的,询问更多的细节。

共有1个答案

尤茂材
2023-03-14

好的,问题在于Gradle如何解决我的web项目所依赖的快照工件。出于某种未知的原因,在某些构建期间,Gradle不会下载最新的jar,这使得它无法下载我在war中需要的传递依赖项,因为它不是这个旧jar的依赖项。从我的回购中删除旧的快照jar解决了这个问题。

 类似资料:
  • 问题内容: 我需要在Maven生成的WAR 文件夹中具有JAR依赖关系,而不是,这是它在存储库中的名称。实现这一目标的最佳方法是什么? 在我的POM中,我有: 我希望它以出现在文件夹中。 这是我无法控制的对Maven Central的外部依赖。同样,我也不想强迫使用此方法的所有人将依赖关系重新部署到其本地存储库。 是否有我可以利用的Maven插件,还是应该开始自己编写代码? 问题答案: 您可以使用

  • 我是新手。与Gradle我有多个项目构建文件。大多数项目构建文件都经过了适当的配置,工作良好,并生成了正确的输出。我正在尝试将其中一个项目从ANT build转换为Gradle build。我能够编译Java文件,并且能够生成WAR归档。 我在生成的WAR文件中注意到的一件事是,WEB-INF/lib目录中包含了额外的JAR文件。当我从ANT build system构建项目时,只有很少的jar文

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

  • 我正在使用maven war插件生成war文件。 在依赖关系层次结构中,我可以看到许多可传递的依赖关系,它们被提取到lib文件夹中。 经过多次研究,我发现将它们从war lib文件夹中排除的最简单方法是在我的依赖项中将它们声明为“提供”。 然而,我有很多依赖项要排除,我必须在许多WAR pom文件中这样做。 我的问题是: 有没有办法将所有这些依赖项分组到“pom”包装中,并在我的WAR pom文件

  • 我正在开发这个maven web(java)应用程序(lwl-module),并通过Eclipse将其部署到JBoss7。 当我在JBoss7下扩展web应用程序的节点时,它下面有两个jar文件,就像它上面的那个一样(bhr-module): 但在我对其中一个jar文件(commons-web)进行更改并重新安装后,该jar文件就从应用程序的节点中消失了。当我重新部署我的web应用程序时,JBos

  • 本文向大家介绍gradle 添加依赖,包括了gradle 添加依赖的使用技巧和注意事项,需要的朋友参考一下 示例 Gradle中的依赖项遵循与Maven相同的格式。依赖关系的结构如下: 这是一个例子: 要添加为编译时依赖项,只需dependency在Gradle构建文件的代码块中添加以下行: 为此的另一种语法可以显式地命名依赖项的每个组件,如下所示: 这在编译时增加了依赖性。 您也可以仅为测试添加