2011-02-04 6 views
5

Quelqu'un a-t-il réussi à obtenir un Scala et un AspectJ (AJDT) pour jouer ensemble dans Eclipse 3.6?Mélanger AspectJ et Scala dans un projet Eclipse

Il semble que le tisserand de Scala soit en conflit avec le tisserand d'AspectJ. J'espère juste manquer quelque chose.

Edit: Jouer bien dans le même projet

+1

Matt R ci-dessous est correct, il est possible d'installer les deux plugins ensemble, mais il peut y avoir des incompatibilités que nous ne sommes pas au courant. Donc, s'il vous plaît soyez plus précis quant à ce qui se passe.\ –

+0

@Andrew Eisenberg Fondamentalement, les tisseurs AspectJ cessent de tisser une fois que j'ajoute Scala Builder au projet. Si je désactive le générateur de scala, tout fonctionne correctement, sauf la compilation Scala. –

+0

Bon ... Je vois ce qui se passe. –

Répondre

3

Sur la base de votre commentaire ci-dessus, Il semble que vous souhaitiez utiliser un seul projet pour utiliser le générateur AspectJ et le générateur Scala. Ce n'est pas possible. Chacun délègue à son propre compilateur et les deux compilateurs ne sont pas (encore) compatibles. Le compilateur Scala peut créer ensemble du code Java et Scala, et le compilateur AspectJ peut construire ensemble du code AspectJ et Java, mais c'est tout. Si vous souhaitez que des aspects s'appliquent à votre code Scala, vous devez séparer votre code AspectJ et Scala en différents projets, puis ajouter le projet Scala à l'entrée inpath de votre projet AspectJ.

Ceci est la même chose que vous auriez à faire si vous compiliez à partir de ant ou de la ligne de commande.

+0

C'est en fait ce que j'ai fait. AspectJ + Java est extrêmement puissant (je dirais même plus puissant que Scala). Mais Scala gagne syntaxiquement. Si seulement Java 7 était sorti et avec des fermetures :) –

+0

Si vous utilisez des aspects basés sur les annotations, il est parfaitement possible de les écrire dans Scala dans un projet Scala, puis de les compiler avec scalac & iajc. Il y a donc des projets qui compilent correctement avec Ant mais pas dans Scala IDE. J'espère que le ScalaBuilder est étendu pour tisser des aspects Scala annotés. – Nick

+0

Suite à mon dernier commentaire - vous pouvez exécuter des aspects Scala annotés dans l'EDI en utilisant le tissage en temps de chargement (http://www.eclipse.org/aspectj/doc/next/devguide/ltw-configuration.html#enabling-load- tissage temporel). – Nick

2

En ce moment, la version recommandée est still Eclipse3.5.2.

billets comme 1000075 ou 3251 mention:

Si vous êtes désespéré, il y a un site de mise à jour de nightly build expérimentale http://download.scala-ide.org/nightly-update-wip-helios-2.8.0.final.

Aujourd'hui, la nuit, vous pouvez essayer avec Helios actuelle 3.6 serait:

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

+0

La version que j'ai essayé il y a un moment était le soir mais je vais essayer à nouveau. –

-1

Voulez-vous dire ayant à la fois le plug-in et AJDT installé en même temps la Scala? C'est certainement faisable - c'est nécessaire pour développer le plug-in Scala lui-même, par exemple.

Je fais ce qui suit:

  • Installer les outils de dev AspectJ + éclipse fonction de service de tissage
  • Installer Scala IDE, mais omettent JDT tissage pour Scala
+0

Non, j'ai les deux plugins installés. Le problème est que je voudrais utiliser AspectJ pour couper des conseils que je ne peux pas faire avec Traits. –

0

Je me bats avec cela depuis un certain temps maintenant. Voici ma solution:

D'abord, séparez votre Scala et votre code AspectJ dans différents projets. Puis ajoutez un générateur Ant à votre projet Scala.

Il court chaque fois que le constructeur de scala court et fait le tissage. Il utilise ant4eclipse pour extraire le classpath, mais vous devrez fournir l'emplacement de la bibliothèque scala.

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