在Eclipse项目中混合AspectJ和Scala

时间:2011-02-04 03:16:28

标签: java eclipse scala aspectj

任何人都可以在Eclipse 3.6中将Scala和AspectJ(AJDT)很好地结合在一起吗?

似乎Scala的织布工与AspectJ的织布工冲突。 我希望我只是遗漏了一些东西。

编辑:在同一个项目中很好地播放

4 个答案:

答案 0 :(得分:3)

根据您上面的评论,您似乎希望单个项目同时使用AspectJ构建器和Scala构建器。这是不可能的。每个人都委托自己的编译器,两个编译器不兼容。 Scala编译器可以一起构建Java和Scala代码,AspectJ编译器可以一起构建AspectJ和Java代码,但就是这样。

如果要将方面应用于Scala代码,则必须将AspectJ和Scala代码分离到不同的项目中,然后将Scala项目添加到AspectJ项目的inpath中。

如果您使用ant或命令行进行编译,这与您需要执行的操作相同。

答案 1 :(得分:2)

目前,推荐的版本为still Eclipse3.5.2

10000753251等门票提及:

  

如果你绝望,那么http://download.scala-ide.org/nightly-update-wip-helios-2.8.0.final会有一个实验性的夜间构建更新网站。

今天,您可以尝试使用Helios 3.6的当前夜晚:

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

答案 2 :(得分:0)

我一直在努力解决这个问题。这是我的解决方案:

首先,将Scala和AspectJ代码分成不同的项目。

然后将Ant构建器添加到Scala项目中。只要scala构建器运行并进行编织,它就会运行。它使用ant4eclipse来提取类路径,但是你必须提供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>

答案 3 :(得分:-1)

您的意思是同时安装Scala插件和AJDT吗?这绝对是可行的 - 例如,它需要开发Scala插件本身。

我执行以下操作:

  • 安装AspectJ dev工具+ eclipse编织服务功能
  • 安装Scala IDE,但省略了Scala的JDT Weaving