3

https://github.com/alexeyr/scala-timeをチェックアウトし、Maven を使用して一度ビルドすると、すべて正常に動作します。次に、src/main/scala/org/scala_tools/time/Implicits.scala をタッチして、再コンパイルをトリガーします。もう一度実行mvn compileすると、次のような 56 個のエラーが表示されます

[ERROR] F:\MyProgramming\scala-time\src\main\scala\org\scala_tools\time\StaticDateTime.scala:29: error: value second is not a member of Int
[ERROR]   def nextSecond = now + 1.second

touched ファイルで定義され、 でインポートされた Implicit が表示されないようimport org.scala_tools.time.Implicits._です。しかし同時にobject Implicits is not a member of package org.scala_tools.time、この場合に予想されるように、エラーはありません。

その後mvn clean、エラーなしで一度コンパイルできます。

  1. 誰でもこれを再現できますか?

  2. はいの場合、どうすれば修正できますか?

更新: SBT でも発生しますが、Implicits.scala実際に異なるクラス ファイルを生成するのに十分に変更された場合のみです (たとえば、行を追加しますobject Implicits2 extends Implicits)。そして、エラーのセットが異なります!

4

2 に答える 2

1

なしでエラーを再現できるmavenので、これは のscalac使用方法の問題 (または のバグscalac) のようです。

% rm -rf target
% mkdir -p target/classes
% cat scalac-args | sed "s;~;$HOME;g" | xargs scalac-2.9 # runs successfully
% cat scalac-args | sed "s;~;$HOME;g" | xargs scalac-2.9
#...
56 errors found

(sedコマンドは の.m2ディレクトリを解決するだけですscalac-args)

どこscalac-argsですか

-target:jvm-1.5
-classpath
~/.m2/repository/org/scala-lang/scala-library/2.9.1-1/scala-library-2.9.1-1.jar:~/.m2/repository/org/joda/joda-convert/1.2/joda-convert-1.2.jar:~/.m2/repository/joda-time/joda-time/2.1/joda-time-2.1.jar:target/classes
-d
target/classes
src/main/scala/org/scala_tools/time/DurationBuilder.scala
src/main/scala/org/scala_tools/time/Implicits.scala
src/main/scala/org/scala_tools/time/Imports.scala
src/main/scala/org/scala_tools/time/RichAbstractDateTime.scala
src/main/scala/org/scala_tools/time/RichAbstractInstant.scala
src/main/scala/org/scala_tools/time/RichAbstractPartial.scala
src/main/scala/org/scala_tools/time/RichAbstractReadableInstantFieldProperty.scala
src/main/scala/org/scala_tools/time/RichChronology.scala
src/main/scala/org/scala_tools/time/RichDate.scala
src/main/scala/org/scala_tools/time/RichDateMidnight.scala
src/main/scala/org/scala_tools/time/RichDateTime.scala
src/main/scala/org/scala_tools/time/RichDateTimeFormatter.scala
src/main/scala/org/scala_tools/time/RichDateTimeProperty.scala
src/main/scala/org/scala_tools/time/RichDateTimeZone.scala
src/main/scala/org/scala_tools/time/RichDuration.scala
src/main/scala/org/scala_tools/time/RichInstant.scala
src/main/scala/org/scala_tools/time/RichInt.scala
src/main/scala/org/scala_tools/time/RichLocalDate.scala
src/main/scala/org/scala_tools/time/RichLocalDateProperty.scala
src/main/scala/org/scala_tools/time/RichLocalDateTime.scala
src/main/scala/org/scala_tools/time/RichLocalDateTimeProperty.scala
src/main/scala/org/scala_tools/time/RichLocalTime.scala
src/main/scala/org/scala_tools/time/RichLocalTimeProperty.scala
src/main/scala/org/scala_tools/time/RichLong.scala
src/main/scala/org/scala_tools/time/RichMonthDay.scala
src/main/scala/org/scala_tools/time/RichMonthDayProperty.scala
src/main/scala/org/scala_tools/time/RichPartial.scala
src/main/scala/org/scala_tools/time/RichPartialProperty.scala
src/main/scala/org/scala_tools/time/RichPeriod.scala
src/main/scala/org/scala_tools/time/RichReadableDateTime.scala
src/main/scala/org/scala_tools/time/RichReadableDuration.scala
src/main/scala/org/scala_tools/time/RichReadableInstant.scala
src/main/scala/org/scala_tools/time/RichReadableInterval.scala
src/main/scala/org/scala_tools/time/RichReadablePartial.scala
src/main/scala/org/scala_tools/time/RichReadablePeriod.scala
src/main/scala/org/scala_tools/time/RichYearMonth.scala
src/main/scala/org/scala_tools/time/RichYearMonthProperty.scala
src/main/scala/org/scala_tools/time/StaticDateTime.scala
src/main/scala/org/scala_tools/time/StaticDateTimeFormat.scala
src/main/scala/org/scala_tools/time/StaticDateTimeZone.scala
src/main/scala/org/scala_tools/time/StaticDuration.scala
src/main/scala/org/scala_tools/time/StaticInterval.scala
src/main/scala/org/scala_tools/time/StaticLocalDate.scala
src/main/scala/org/scala_tools/time/StaticLocalDateTime.scala
src/main/scala/org/scala_tools/time/StaticLocalTime.scala
src/main/scala/org/scala_tools/time/StaticPartial.scala
src/main/scala/org/scala_tools/time/StaticPeriod.scala

そして、適切な jar が既にダウンロードされています。

引数を に置き換えるtarget/classestarget/classes/org/scala_tools/time/-classpath問題なく動作します。

% rm -rf target
% mkdir -p target/classes
% cat scalac-args | sed "s;~;$HOME;g" | xargs scalac-2.9 # runs successfully
% cat scalac-args | sed "s;~;$HOME;g" | xargs scalac-2.9 # runs successfully

そのため、パス上のディレクトリが指定されたときにパッケージに適したサブディレクトリを検索することをmaven-scala-plugin期待しているように見えますが、そうしていません。誰が間違っているのかわかりません。scalacscalac

于 2012-04-01T13:51:38.257 に答える
1

不満足な修正: rm -rf target ; mvn compile – ランピオン 9 時間前

彼ができるので役に立たない修正mvn clean compile-そしてこれはクロスプラットフォームのソリューションになります:)

于 2012-04-01T05:48:58.733 に答える