Ошибка компиляции примера Цейлона с Gradle

Ceylon 1.3.1 только что был выпущен, одним из нововведений стала лучшая интеграция с проектами / библиотеками Java. Решил взять один из образцов для вращения ( https://github.com/DiegoCoronel/ceylon-spring-boot) вместе с плагином цейлонского грейдера ( https://github.com/renatoathaydes/ceylon-gradle-plugin),

Насколько я могу судить, превращение этого проекта в многопроектную сборку 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.

Это происходит с помощью Gradle 3.2

------------------------------------------------------------
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

Пробовал устанавливать дополнительные свойства на ceylon Конфигурация, как описано в документации к плагину, например,

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

Однако ошибка сохраняется. Любые указатели на то, что я могу пропустить, будет принята с благодарностью.

1 ответ

Решение

Это связано с тем, что плагин ceylon gradle пока не поддерживает новую функцию --ful-export-maven-dependencies ... Я создал проблему сейчас;), поэтому, чтобы ваш проект работал, вам, вероятно, нужно изменить каждый подпроект /.ceylon/ Конфиг с этими параметрами:

[compiler]
source=source
resource=resource

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

Он отключит новую функцию ceylon и использует функцию плагина ceylon gradle и сгенерированный файл overrides.xml

Другие вопросы по тегам