2016-11-22 1 views
2

Ceylon 1.3.1이 출시되었습니다. 새 항목 중 하나가 Java 프로젝트/라이브러리와의 통합이 더 잘되었습니다. Ceylon-gradle Plugin (https://github.com/renatoathaydes/ceylon-gradle-plugin) 옆에 스핀을위한 샘플 중 하나 (https://github.com/DiegoCoronel/ceylon-spring-boot)를 가져 가기로 결정했습니다.Ceylon 예제를 Gradle로 컴파일하는 중 오류가 발생했습니다.

내가 알 수있는 한,이 프로젝트를 다중 프로젝트 Gradle 빌드로 바꾸려면 다음 구성을 사용하여 두 개의 파일을 추가해야합니다.

settings.gradle

include 'gateway' 
include 'discovery' 
include 'foo' 
include 'bar' 
include 'foobar' 

build.gradle 불행하게도 오류가있는 모듈의 결과 중 하나를 구축

plugins { 
    id 'com.athaydes.ceylon' version '1.3.0' apply false 
} 

subprojects { subprj -> 
    subprj.apply plugin: 'com.athaydes.ceylon' 

    repositories { 
     mavenCentral() 
    } 

    ceylon { 
     module = subprj.name 
    } 
} 

등이 발생

$ gradle :gateway:compileCeylon 

:gateway:resolveCeylonDependencies 
:gateway:createDependenciesPoms 
:gateway:createMavenRepo 
:gateway:generateOverridesFile 
:gateway:createModuleDescriptors 
:gateway:importJars 
:gateway:compileCeylon 
source/gateway/module.ceylon:3: error: Pre-resolving of module failed: Could not find module: antlr/2.7.7 
     import ceylon.interop.java "1.3.0"; 
     ^
ceylon compile: There was 1 error 
:gateway:compileCeylon FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':gateway:compileCeylon'. 
> Ceylon process exited with code 1. See output for details. 

로 같은

ceylon { 
    flatClasspath = false 
    importJars = true 
    forceImports = true 
} 

오류가 계속 발생하지만

로, Gradle을 3.2 플러그인의 설명서에 설명 된대로 ceylon 구성에 추가 속성을 설정하는 시도

------------------------------------------------------------ 
Gradle 3.2 
------------------------------------------------------------ 

Build time: 2016-11-14 12:32:59 UTC 
Revision:  5d11ba7bc3d79aa2fbe7c30a022766f4532bbe0f 

Groovy:  2.4.7 
Ant:   Apache Ant(TM) version 1.9.6 compiled on June 29 2015 
JVM:   1.8.0_112 (Oracle Corporation 25.112-b16) 
OS:   Mac OS X 10.10.5 x86_64 

를 사용하여. 제가 누락 된 부분에 대한 조언은 크게 감사하겠습니다.

+0

안녕을 사용합니다! 죄송합니다. 실론 1.3.1을 사용하기 위해 실론 플러그인을 아직 업데이트하지 않았습니다. 곧이 문제가 해결 될 것입니다! – Renato

답변

3

이 실론 Gradle을 플러그인 does not support yet 새로운 기능 --fully-수출 받는다는 의존성이 ... 내가 지금이 문제를 생성하기 때문이다), 그래서 당신의 프로젝트 작업을 만들기 위해 당신은 아마 변경해야 하위 프로젝트/이 옵션 .ceylon/구성 :

[compiler] 
source=source 
resource=resource 

[defaults] 
encoding=UTF-8 
overrides=build/overrides.xml 
flatclasspath=true 
fullyexportmavendependencies=false 

그것은 새로운 실론 기능을 비활성화하고 실론 Gradle을 플러그인 기능과 생성의 Overrides.xml 파일

+0

동의. 그것은 이것이 Gradle 플러그인의 문제인 것처럼 보입니다. 기본적으로 너무 많이합니다. 그리고이 경우에 - 합법적 인 역사적 이유 때문에 - 실론 1.3.1이 이미하는 일을하려고합니다. –

+1

고마워요! 제안 된 수정 프로그램은 빌드를 추가로 만듭니다. 모듈'discovery '와'gateway'는 아무런 문제없이 만들어 지지만'foo','bar','foobar'는 중복 된 모듈 임포트로 실패합니다. 나는 이것이 제공된 것을 사용하는 대신에'overrides.xml'의 자동 생성에 의한 것이라고 생각한다. source/bar/module.ceylon : 2 : 오류 : 소스 코드는 두 개의 서로 다른 버전의 모듈 인 org.springframework.data : spring-data-commons ': 버전'1.12.4.RELEASE '및 버전'1.12.5.RELEASE ' 모듈 막대 "1.0.0"{ – aalmiray

+1

오른쪽,하지만 [수정 진행 중] 문제 (https : //github.com/renatoathaydes/ceylon-gradle-plugin/issues/16), 아마도 다음 릴리스에서 수정 될 것이며, 종속성을 다루기 위해 gradle 또는 ceylon 방식을 선택하면 모든 것이 투명해질 것입니다 –

관련 문제