2016-10-29 3 views
0

Grails 프로젝트 (grails 2.3.11)에 여러 개의 Grails 플러그인이 있습니다. 하나의 메인 Grails 프로젝트는 사용자 정의 Grails 플러그인과 핵심 자바 프로젝트 외에도 완벽한 애플리케이션을 생성합니다. 지금까지이 프로젝트는 Ant 빌더를 사용하여 빌드되었습니다. 최근에 Gradle을 사용하도록 빌드 프로세스를 업그레이드했습니다.특정 jdk가있는 Gradle 빌드 프로젝트

gradle 프로세스의 문제점은 일부 프로젝트는 jdk 1.7로 빌드해야하고 일부는 jdk 1.8로 빌드해야한다는 것입니다. 이 문제를 해결하기 위해 java_home을 jdk 1.7을 가리 키도록 설정했습니다. 그런 다음 jdk 1.8으로 빌드 할 코드가 필요한 프로젝트 디렉토리에 gradle.properties 파일을 생성했습니다. org.gradle.java.home 속성을 jdk 1.8을 가리 키도록 설정하십시오. 지금 내가 그런 프로젝트에서 java_home 값을 인쇄 할 때 여전히 jdk 1.7 (환경 변수로 설정된 하나)을 선택한다는 것을 알게되었습니다.

여기 내 Gradle을 compileJava 작업 :

compileJava { 
    options.encoding = 'UTF-8' 
    def env = System.getenv("JAVA_HOME") 
    println "Compile Java: JAVAHOME = ${env}" 
    dependsOn ':core:updateversiondotjava' 
    logging.captureStandardOutput LogLevel.DEBUG 
} 

프로젝트는 1.7 빌드 모든 Grails의 프로젝트와 Grails의 사용자 정의 플러그인입니다. 1.7로 빌드하는 이유는 grails 버전 업그레이드를 피하는 것입니다. grails 2.3.x 이하는 Java 1.8을 지원하지 않기 때문에.

아무도 내가 잘못하고있는 곳을 안내해 줄 수 있습니까?

+0

Java 플러그인을 적용 할 때 gradle의 sourcecompatabity 및 targetcompatability를 사용하여이 작업을 수행 할 수 있습니다. 하위 프로젝트에 대해 서로 다른 소스 및 대상을 설정할 수 있습니다. – PKR

답변

0

내 테스트에서 Java 8에서 실행되는 Grails 2.3.11을 기억해보십시오. Grails 2.3의 초기 버전은 Java 8에서 실행되지 않았습니다. 공식적인 지원은 2.4.x에서 시작되었지만 2.3.11 애플리케이션으로 Java 8을 사용해 보았습니다.

+0

예, Java 8 및 Grails 2.3.11로 빌드 애플리케이션을 사용하십시오. 오류없이 빌드됩니다. 호환되는 플러그인으로 업그레이드했습니다. 그러나 런타임에 오류가 발생합니다. 특히 Grails webflow - withForm() [중복 양식 제출 처리기]에서 오류가 발생합니다. 따라서 Java 8을 빌드 할 때처럼 보이지만 기본 사항은 버전과 호환되지 않습니다. –

관련 문제