>

사용자 정의 gradle 플러그인을 개발 중이며 플러그인 프로젝트의 종속성은 다음과 같습니다.

dependencies {
  compile gradleApi()
  compile localGroovy()
  compile('com.xxx.oozie:oozie-dsl-parser:1.0.127') {
    exclude module: 'groovy-all'
  }
  testCompile('org.spockframework:spock-core:1.0-groovy-2.3') {
    exclude module: 'groovy-all'
  }
}

그러나 재현 가능한 빌드를 위해 localGroovy() 를 사용할지 궁금합니다.  그리고 gradleApi()  좋습니다.

많은 인터넷 검색 후 localGroovy() 를 대체 할 수는 있었지만  groovy의 특정 버전을 사용하면 gradleApi() 를 대체 할 것에 대한 명확한 대답을 찾지 못하는 것 같습니다.  와 함께

당신은 어떤 제안이 있습니까?

감사합니다!


  • 답변 # 1

    나는 java-gradle-plugin 를 적용하는 것이 좋습니다 . 그것은 gradleApi() 를 추가합니다  자동으로 종속되며 다른 보일러 플레이트 구성도 포함됩니다 : https://docs.gradle.org/current/userguide/javaGradle_plugin.html#gsc.tab=0

    gradleApi() 의 버전  의존성으로 추가되는 것은 빌드 프로젝트를 사용하는 Gradle 버전에 따라 다릅니다. 예를 들어 래퍼에 Gradle 2.14.1이있는 경우 사용 된 Gradle API는 해당 버전입니다.

    또한 localGroovy() 에 대해 걱정할 필요가 없습니다  그것은 이미 gradleTestKit() 에 포함되어 있기 때문에  플러그인에 의해 추가되는 종속성 : https://docs.gradle.org/current/userguide/test_kit.html#sub:test-kit-automatic-classpath-injection&gsc.tab=0

    예는 다음과 같습니다.

    apply plugin: 'groovy'
    apply plugin: 'java-gradle-plugin'
    dependencies {
        testCompile('org.spockframework:spock-core:1.0-groovy-2.4') {
            exclude module: 'groovy-all'
        }
    }
    
    

  • 답변 # 2

    https://github.com/gradle/gradle/issues/1835를 보면, 그 목적으로 사용할 수있는 명시적인 의존성이없는 것 같습니다.

    gradleApi() 와 동일하지는 않지만 , Android 용으로 개발중인 경우 com.android.tools.build:gradle-api:3.3.2 에 관심이있을 수 있습니다.  의존성.

관련 자료

  • 이전 laravel - 피벗 테이블에없는 경우
  • 다음 html - Bootstrap-Vue 카드 구성 요소 이미지가 렌더링되지 않습니다