IT박스

gradle 플러그인 적용의 차이점

itboxs 2020. 7. 14. 20:57
반응형

gradle 플러그인 적용의 차이점


gradle plugins block을 이해하지 못합니다

apply plugin: 'someplugin1'
apply plugin: 'maven'

그리고 다른 하나 :

plugins {
   id 'org.hidetake.ssh' version '1.1.2'
}

첫 번째 블록에는 플러그인 이름이 있습니다. 두 번째 패키지와 버전. 첫 번째 블록을 사용해야하는 위치와 두 번째 블록을 사용해야하는 시점을 이해하지 못합니다.


plugins블록은 플러그인을 적용하는 새로운 방법이다, 그들은에서 사용할 수 있어야합니다 Gradle을 플러그인 저장소 . apply접근 방식은 빌드에 플러그인을 추가하는 오래되었지만 더 유연한 방법입니다.

새로운 plugins방법은 다중 프로젝트 구성 ( subprojects, allprojects)에서는 작동하지 않지만 각 하위 프로젝트의 빌드 구성에서는 작동합니다.

기능이 진행됨에 따라 plugins구성 방법이 이전 방식을 능가 한다고 생각 하지만이 시점에서 둘 다 동시에 사용할 수 있습니다.


@cjstehno가 이미 언급했듯이 apply plugin피해야 할 레거시 방법입니다.

플러그인 DSL의 도입으로, 사용자는 플러그인을 적용하는 레거시 방법을 사용할 이유가 거의 없습니다. 빌드 작성자가 현재 작동하는 방식의 제한으로 인해 플러그인 DSL을 사용할 수없는 경우에 여기에 설명되어 있습니다.

새로운 plugins block방법을 사용하면 선택적 매개 변수를 사용하여 플러그인을 추가하고 적용시기를 제어 할 수 있습니다 apply.

plugins {
    id «plugin id» version «plugin version» [apply «false»]
}

plugins블록 에 이미 추가되었지만 적용되지 않은 플러그인을 적용하려는 상황에서는 레거시 방법을 계속 사용합니다 . 예를 들어, 마스터 프로젝트에서 플러그인 xyz은 추가되었지만 적용되지 않으며 하위 프로젝트에만 적용해야합니다 subPro.

plugins {
  id "xyz" version "1.0.0" apply false
}

subprojects { subproject ->
    if (subproject.name == "subPro") {
        apply plugin: 'xyz'
    }
}

더 이상 버전이 필요하지 않습니다. 버전이 필요합니다 plugins당신은 같은 코어 Gradle을 플러그인 중 하나를 사용하지 않는 블록 java, scala...

나는 Spring Boot응용 프로그램 을 만들려고 할 때 차이점을 이해하는 데 시간을 보냈기 때문에 잠시 후에 다시 대답합니다. Spring Boot플러그인 사용에 대한 다음 예제 는 많은 도움이되었습니다.

현재 사용해야 할 것 :

plugins {
  id "org.springframework.boot" version "2.0.1.RELEASE"
}

Gradle 2.1 이전에 사용 된 것 :

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "org.springframework.boot:spring-boot-gradle-plugin:2.0.1.RELEASE"
  }
}

apply plugin: "org.springframework.boot"

참고URL : https://stackoverflow.com/questions/32352816/what-the-difference-in-applying-gradle-plugin

반응형