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

时间:2018-12-09 19:00:37

标签: java gradle groovy build.gradle

我有2个Java项目和1个服务器,所有这三个服务器都有build.gradle文件,用于定义和配置项目中需要的依赖项。 Liberty服务器build.gradle的代码段如下:

configuration{
  project1
  project2
  oracle
  extrasecuritystuff
}

dependencies{
  project1: "fskfksd"

  project2: "sdfd"

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

我的问题是我如何排除2.“ ewrwer”中存在的传递依赖。常规的groovy / gradle语法是什么? 基于gradle文档,一旦我触发了Jenkins构建,我就尝试了类似的方法,但没有解决,它仍然在传递依赖库中。

   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 个答案:

答案 0 :(得分:0)

我在这里假设您正在使用某些插件(例如“应用程序”插件)来生成项目的.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'
  }
}

有关管理传递依赖项的更多信息,请参阅the official Gradle docs.