2013-09-25 2 views
1

Grails 2.3.0에서, 내 플러그인이 의존하는 플러그인은 maven-install을 실행할 때 내 보내지 않습니다. 이는 2.2.3에서 작동 :maven-install을 사용하여 Grails 2.3.0에서 플러그인의 전이 의존성을 어떻게 내 보내야합니까?

$ which grails 
/Applications/grails-2.2.4/bin/grails 
$ grails create-plugin myplugin 
| Created plugin Myplugin 
# add spring-security-core 
$ cd myplugin; cat grails-app/conf/BuildConfig.groovy 
... 
    plugins { 
    build(":tomcat:$grailsVersion", 
      ":release:2.2.1", 
      ":rest-client-builder:1.0.3") { 
     export = false 
    } 
    compile ":spring-security-core:1.2.7.3" 
    } 
$ grails compile; grails maven-install 
$ cat target/pom.xml|grep spring 
    <artifactId>spring-security-core</artifactId> 
$ cat ~/.m2/repository/org/grails/plugins/myplugin/0.1/myplugin-0.1.pom|grep spring 
    <artifactId>spring-security-core</artifactId> 

하지만 내 application.properties가 목록에 종속성이 없습니다

$ which grails 
/Applications/grails-2.3.0/bin/grails 
$ grails create-plugin mynewplugin 
| Created plugin Mynewplugin 
# add spring-security-core 
$ cd mynewplugin; cat grails-app/conf/BuildConfig.groovy 
... 
    plugins { 
    build(":release:3.0.0", 
      ":rest-client-builder:1.0.3") { 
     export = false 
    } 
    compile ":spring-security-core:1.2.7.3" 
    } 
$ grails compile; grails maven-install 
$ cat target/pom.xml|grep spring 
$ cat ~/.m2/repository/org/grails/plugins/mynewplugin/0.1/mynewplugin-0.1.pom|grep spring 
$ 

2.3.0에서. Grails 2.3.1을 소스에서 빌드하려고했지만 2.3.0과 동일하게 동작했습니다. 목표는 다른 플러그인에 의존하는 플러그인을 가질 수있게하는 것이며, 주요 앱이 명시 적으로 선언하지 않아도 이러한 종속성을 기본 앱에 내 보냅니다. 그게 가능해야하고, 그렇다면 무엇을 놓치고 있습니까? 나는 많은 다른 관련된 stackoverflow 응답과 Grails 메일 링리스트를 읽었지만, 아무것도 이것에 대해 정리하지 않았다.

+1

여기를 참조 버트의 대답 : http://stackoverflow.com/ 그것은 3.0.1 그래서 당신의 BuildConfig.groovy이를 추가하고 다시 실행 받는다는 설치에 고정이 문제를 해결합니다 questions/18995006/how-to-add-plugin-dependencies-to-pom-xml – zoran119

+0

이 의견에서 문제가 해결되었습니다. http://stackoverflow.com/questions/18995006/how-to-add-plugin-dependencies-to-pom-xml#comment28118466_18995834 –

답변

1

이 문제로 어려움을 겪고있는 사람은 릴리스 플러그인 버전 3.0.0에서 버그 또는 누락 된 것으로 나타났습니다.

build(":release:3.0.1",... 

Here is the JIRA issue for the bug.

1

Grails 2.3을 사용하기 위해 프로젝트를 업그레이드하는 동안이 문제를 발견했습니다. 현재까지 생성 된 pom에는 일부 종속성이 포함되어 있지만 대부분의 경우에는 모두가 아닌 것처럼 원인을 발견하지 못했습니다. BuildConfig.groovy에서

  1. grails.project.dependency.resolver = "maven", checksums true
  2. legacyResolve false 프로젝트의 루트에 pom.xml 파일 만들기와 함께 use pom을 추가 : 그러나 나는 모든 것을 구축 할 수 있도록 보인다 주위에 작품을 발견했다. 원하는대로 채 웁니다.
  3. BuildConfig.groovy에서 pom으로 종속성을 이동하십시오. 플러그인에 대한 종속성 정의 (어떤 플러그인을 구축, 나는 한 번 메이븐에 따라 제공 범위에 정의) :

    <dependency> 
        <groupId>some.group</groupId> 
        <artifactId>artifact</artifactId> 
        <version>1.0.0</version> 
    </dependency> 
    
  4. grails maven-install 또는 grails maven-deploy 지금 사용해야 수행 : 종속성 블록 항목의 경우

    <dependency> 
        <groupId>org.grails.plugins</groupId> 
        <artifactId>spring-security-core</artifactId> 
        <version>1.2.7.3</version> 
        <type>zip</type> 
    </dependency> 
    

    그 pom 제대로 작동합니다. 우리는 부모 pom을 사용하여이를 global settings.groovy 내의 여러 스위치와 함께 묶었습니다.이 스위치는 잘하면 (인심할 때 테스트하지 않아야 함) 우리가 인라인 할 수 있도록해야합니다.

+0

감사합니다. Jamie, 해결 방법을 시도 할 것입니다. 지금 당장 답을주지 않은 채로 질문을 남기면보다 자연스러운 방법이 있는지 확인하십시오. –

관련 문제