Как исключить транзитивную зависимость из файла build.gradle сервера liberty - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть 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 голосов
/ 10 декабря 2018

Я предполагаю, что вы используете какой-то плагин, такой как плагин '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.

...