2011-02-04 15 views
5

Eclipse 3.6でScalaとAspectJ(AJDT)をうまく組み合わせることができましたか?EclipseプロジェクトでAspectJとScalaを混ぜる

ScalaのウィーバーがAspectJのウィーバーと競合しているようです。 私はちょうど何かが欠けていると思っています。

編集:今、同じプロジェクトにうまく

+1

マット・Rは、一緒に2つのプラグインをインストールすることができ、正しいですが、私たちが認識しないいくつかの非互換性があるかもしれません。だから、何が起こっているかについてもっと具体的にしてください。\ –

+0

@Andrew Eisenberg基本的に、Scala Builderをプロジェクトに追加すると、AspectJ製作者は製織をやめます。私がScalaビルダーを無効にすると、Scalaのコンパイルを除いて、すべてうまく動作します。 –

+0

右...何が起こっているのか分かります。 –

答えて

3

のためのJDTウィービングを省略日食+ AspectJのdevのツールをインストールし、単一のプロジェクトでAspectJビルダーとScalaビルダーの両方を使用したいと思うようです。これは不可能です。それぞれが独自のコンパイラに委任し、2つのコンパイラは(まだ)互換性がありません。 Scalaコンパイラは、JavaとScalaコードを一緒に構築することができ、AspectJコンパイラはAspectJとJavaコードを一緒に構築できますが、それだけです。

アスペクトをスカラコードに適用するには、AspectJとScalaコードを別々のプロジェクトに分けてから、ScalaプロジェクトをAspectJプロジェクトのインパスに追加する必要があります。

これは、antやコマンドラインからコンパイルする場合に必要となるのと同じことです。

+0

これは実際に私がやったことです。 AspectJ + Javaは非常に強力です(私はScalaよりも強力です)。しかし、Scalaは構文的に勝ちます。 Java 7のみが終了していてクロージャ付きの場合: –

+0

アノテーションベースのアスペクトを使用している場合は、Scalaプロジェクト内でScalaに記述し、scalac&iajcでコンパイルすることは可能です。したがって、Antとは正しくコンパイルされ、Scala IDEではコンパイルされないプロジェクトがあります。 ScalaBuilderを拡張して、注釈付きのScalaの側面を織り込むことを願っています。 – Nick

+0

私の最後のコメントに加えて、ロードタイム織り(http://www.eclipse.org/aspectj/doc/next/devguide/ltw-configuration.html#enabling-load-時間織り)。 – Nick

2

を再生、推奨バージョンはstill Eclipse3.5.2です。 1000075または3251言及などの

チケット:

あなたはhttp://download.scala-ide.org/nightly-update-wip-helios-2.8.0.finalで実験的なナイトリービルドの更新サイトがあります必死なら。

今日、あなたはヘリオス3.6と試みることができる毎晩電流は次のようになります。

http://download.scala-ide.org/nightly-update-master-2.8.1.final

+0

少し前に試したバージョンは夜間でしたが、もう一度試してみます。 –

-1

あなたはScalaは、プラグインとAJDTが同時にインストールされ、両方の持つ意味しますか?これは間違いなく実行可能です。例えば、Scalaプラグイン自体を開発するために必要です。

私は、次の手順を実行します

  • は織りサービス機能
  • はScalaのIDEをインストールします。ただし、上記のあなたのコメントに基づいてスカラ
+0

いいえ両方のプラグインがインストールされています。問題は、Traitではできないアドバイスを横断してAspectJを使いたいということです。 –

0

私はしばらくの間これを苦労してきました。ここで私の解決策は次のとおりです。

まず、ScalaとAspectJコードを別々のプロジェクトに分けてください。

次に、ScalaプロジェクトにAntビルダーを追加します。それはスカラービルダーが走って、織りをするたびに走ります。 ant4eclipseを使用してクラスパスを抽出しますが、スカラライブラリの場所を指定する必要があります。

のbuild.xml:以下

<project name="simple-example" default="compile" 
xmlns:ant4eclipse="antlib:org.ant4eclipse" 
     xmlns:antcontrib="antlib:net.sf.antcontrib"> 

<ant4eclipse:jdtClassPathLibrary name="org.scala-ide.sdt.launching.SCALA_CONTAINER"> 
    <fileset file="../lib/scala-library.jar"/> 
</ant4eclipse:jdtClassPathLibrary > 

<ant4eclipse:getJdtClassPath 
    workspacedirectory=".." 
    projectName="lpfExample" 
    property="classpath"/> 

<target name="compile"> 
    <iajc sourceroots="src" destdir="bin"> 
     <inpath> 
      <pathelement location="bin" /> 
     </inpath> 
     <aspectpath> 
      <pathelement location="../aspects/bin"/> 
     </aspectpath> 
     <classpath path="${classpath}"/> 
    </iajc> 
</target> 
</project> 
関連する問題