2016-11-22 2 views
2

Ceylon 1.3.1がリリースされました。新しい項目の1つは、Javaプロジェクト/ライブラリとの統合性が向上しています。 Ceylon-gradleプラグイン(https://github.com/renatoathaydes/ceylon-gradle-plugin)と並んでスピンのサンプル(https://github.com/DiegoCoronel/ceylon-spring-boot)を取ることにしました。CeylonサンプルをGradleでコンパイルする際のエラー

私が知る限り、このプロジェクトをマルチプロジェクトのGradleビルドに変えることは、以下の設定で2つのファイルを追加することです。残念ながら、そのような

$ 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. 
などのエラーのモジュールの結果のいずれか、

これが起こるの構築

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

このよう

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

こんにちは!申し訳ありませんが、私はまだCeylonプラグインを更新して、Ceylon 1.3.1を使用する予定はありませんでした。すぐにこれを修正する予定です! – Renato

答えて

3

これは、セイロンのGradleプラグインdoes not support yet新機能--fully-輸出のmaven-依存関係が...私は今、問題を作成しているためである。)ので、あなたのプロジェクトの仕事をするためにあなたはおそらく変更する必要がサブプロジェクト/ .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:エラー:ソースコードは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の方法を選択するとすべてが透明になります –

関連する問題