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

如何从liberty-server build.gradle文件中排除传递依赖

姜景焕
2023-03-14

我得到了2个java项目和1个服务器,这三个都有build.gradle文件,定义和配置我在我的项目中需要的依赖关系。Liberty server Build.Gradle的代码片段如下:

configuration{
  project1
  project2
  oracle
  extrasecuritystuff
}

dependencies{
  project1: "fskfksd"

  project2: "sdfd"

  extrasecuritystuff 1."fsfd"
                     2."ewrwer"
}
doTask{....

我的问题是如何排除2.“eWrwer”中存在的传递依赖项。这样做的Groovy/Gradle语法是什么?基于gradle文档,我尝试了类似的方法,但没有成功,一旦我触发了Jenkins构建,它仍然在调用传递依赖jar。

   configurations {
           project1
           project2
           extrasecuritystuff {
            exclude group: 'javax.jms', module: 'jms'
            exclude group: 'com.sun.jdmk', module: 'jmxtools'
           }
    }

    dependencies {
      project1 'org.javax.etc' 
      project2 'org.blah.blah'   
      extrasecuritystuff 'log4j:log4j:1.2.15'
    }

共有1个答案

国言
2023-03-14

我在这里假设您正在使用诸如“application”插件之类的插件来生成项目的。zip文件,并且您的目标是从。zip文件中排除传递依赖性。原因可能是传递依赖项具有不希望的许可,或者太大,并且代码实际上从未调用需要传递依赖项的函数。(绝对100%加倍肯定这一点,否则您的应用程序将崩溃。)或者,目标系统已经安装了该依赖项。(同样。)

您的示例代码中有一些语法问题,但我已经根据我的理解解释了这个问题。在这个示例中,我的依赖项EWRWER正在拉入lib-foo,这是我不想要的。

configuration{
  project1
  project2
  extrasecuritystuff
}

dependencies{
  project1 ( [...] )
  project2 ( [...] )

  extrasecuritystuff ('org.blah:fsfd:1.0.1')
  extrasecuritystuff ('org.bloop:ewrwer:2.12') {
       exclude group: 'org.bleep', module: 'lib-foo'
  }
}

关于管理传递依赖关系的更多信息,请参阅官方的Gradle文档。

 类似资料:
  • 我有三个分级模块:ModA模块、ModB模块和ModC模块 ModA依赖于ModB和Spring Web MVC 3.2.6 ModC依赖于Spring Web MVC 4.1.5 我得到了相当多的错误,因为ModA拉进来,使用的是Spring4.1.5而不是3.2.6。由于版本差异和时间,我现在无法将ModA更新到Spring4.1.5。我想做的是将Spring4.1.5从ModA Gradle

  • 我试图从gradle构建中排除嵌套的传递依赖项。依赖结构看起来像 org.apache.beam:beam-sdks-java-core:2.33.0-自定义 我按照gradle exclude的公认解决方案排除了依赖性,但它对我不起作用。 这不排除依赖项。当我将其更改为时,依赖项仍然没有被排除。 关于如何排除这种依赖关系的任何建议?它在旧版本中拉动。

  • 关于maven和传递依赖排除有几个问题。然而,我不能让它工作。我的pom中有一些依赖项,它们重新打包了一些库,以减小pom的大小。到目前为止,这是成功的。但是当我运行时,这些可传递的依赖项会被写入。类路径文件。尽管它们被排除在外,如以下摘录所示。 Apache Maven 3.3.3(7994120775791599e205a5524ec3e0dfe41d4a06;2015-04-22T13:57

  • 我试图排除gradle中的传递依赖项 我看到这个错误 null 在类型为org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency的DefaultExternalModuleDependency{group='org.apache.kafka',name='kafka-streams',version

  • 给予 这在gradle 1.3中无法正常工作。(即,子项目包含所有依赖项) 这是一个bug还是有不同的语法来排除项目依赖关系?

  • 我遇到了一个我一直无法解决的特殊问题,如果有任何帮助,我将不胜感激。最初,我在Java项目中包含了一些jar依赖项作为工件依赖项。它看起来如下所示: 到目前为止还好。让我们把这个项目叫做'A'。我已经将项目A包含在另一个Java项目B中,同样是用Gradle。我注意到,当在B中使用一个带有maven-publish的published时,它在pom文件中并没有排除所有的传递依赖项。 所以我开始使用