2009-12-08 1 views
3

Grails에서 작은 웹 프론트 엔드를 개발 중입니다. 기본적으로 JMS를 통해 비동기 적으로 연결된 "초경량"클라이언트 응용 프로그램입니다.Grails와 Local Maven 종속성

Maven 저장소에서 가져 오려는 프로젝트에 두 개의 종속성이 있습니다. 그들은 내부 저장소 인 activemqacme-adapter-api이며 원격 저장소에서는 사용할 수 없습니다. 예를 들어, 내가 grails dependency-report을 실행하면

repositories { 
    grailsPlugins() 
    grailsHome() 
    mavenCentral() 
    mavenRepo('D:/maven-repo') 
} dependencies { 
    compile 'org.apache.activemq:apache-activemq:4.1.1' 
    compile 'com.acme:acme-adapter-api:1.3-SNAPSHOT' 
} 

, 내가 acme-adapter-api에 관한이 줄을 볼 수

나는 나의 BuildConfig.groovy (Grails의 1.2M4) 내 종속성을 액세스하기 위해이 같은 파일을 설정 : 나는 grails compile를 실행하려고하면 그 다음은에서 클래스를 해결할 수없는 불만으로

acme-adapter-api by com.acme 
108 kB (0 kB downloaded, 108 kB in cache) 

것은, 내가 운이없는3210 그룹.

흥미롭게 activemq 종속성 만 mavenRepo("D:/maven-repo")에서 절정 종속성이 mavenCentral()에없는 것을

의 차이는 ... 문제 될 것 같지 않습니다. 그래서 나는 다음과 같이 생각했다 : "어쩌면 로컬 디스크에서 파일을 가져 오지 않을 수도있다 ..."그리고 BuildConfig.groovy 파일에 존재하지 않는 재미있는 (1.999-SNAPSHOT) 값으로 버전을 변경했다. 다시 grails compile을 실행하면 명령이 해당 버전을 찾을 수 없습니다라고, 시간 초과 :

UNRESOLVED DEPENDENCIES 
D:/maven-repo: unable to get resource for com/acme#acme-adapter-api;1.999-SNAPSHOT 

그래서 분명히 로컬 종속성을 얻을 수 ... 해결하지만, 어떻게 든 다음 단계, 컴파일에 적용되지

답변

0

그것을 문제가 공백이 아닌 캐시 인 것으로 밝혀졌습니다. activemq jar 파일은 변경되지 않았지만 사실 acme-adapter-api.jar는 위의 경우에 maven 빌드 ID 1.3을 늘리지 않고도 여러 번 변경되었습니다.

나는 1.4 스냅 샷으로 빌드 번호를 증가 할 때 나는 그것을 고칠 수는 ...

두 질문은 남아 :

  1. 항상 SNAPSHOT 버전을 가져 로 받는다는 계약되지 않으며, 똑같은 이유로?
  2. 강제로 캐시를 비우는 방법은 무엇입니까? 그리고 그것은 어디 있습니까?

나는 부분을 대답 새로운 질문을 엽니 다 2 here

+0

같은 문제가 발생했습니다. SNAPSHOT 종속성은 처음으로 다시로드되지 않습니다. 이것은 개발 과정에서 커다란 문제입니다. :/Grrr. – Mike

+0

https://github.com/alkemist/grails-snapshot-dependencies-fix 해결 방법 –

5

Grails를 1.3.6은 (는 https://issues.apache.org/jira/browse/IVY-938에 대한 수정을 적용 것으로 나타났다) 아이비 2.2로 업데이트되었습니다 나는 SNAPSHOT 버전에 대한 업데이트를 얻을 수 있습니다 다음과 같이 "changing = true"를 지정하면

dependencies { 
    runtime ('groupId:artifactId:version-SNAPSHOT') { 
    changing = true 
    } 
}