Java 在Eclipse项目中混合AspectJ和Scala

Java 在Eclipse项目中混合AspectJ和Scala,java,eclipse,scala,aspectj,Java,Eclipse,Scala,Aspectj,有人能够在Eclipse3.6中使用Scala和AspectJ(AJDT)来很好地配合使用吗 Scala的weaver似乎与AspectJ的weaver冲突。 我希望我只是错过了一些东西 编辑:在同一个项目中很好地播放现在,推荐的版本是 门票包括或提及: 如果你很绝望的话,这里有一个实验性的夜间构建更新站点 今天,您可以在Helios 3.6上尝试的当前夜间计划是: 您的意思是同时安装Scala插件和AJDT吗?这绝对是可行的——例如,它是开发Scala插件本身所必需的 我做了以下工作: 安装

有人能够在Eclipse3.6中使用Scala和AspectJ(AJDT)来很好地配合使用吗

Scala的weaver似乎与AspectJ的weaver冲突。 我希望我只是错过了一些东西


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

现在,推荐的版本是

门票包括或提及:

如果你很绝望的话,这里有一个实验性的夜间构建更新站点

今天,您可以在Helios 3.6上尝试的当前夜间计划是:


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

我做了以下工作:

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

根据您上面的评论,您似乎希望一个项目同时使用AspectJ builder和Scala builder。这是不可能的。每个编译器都委托给自己的编译器,而这两个编译器(尚未)兼容。Scala编译器可以一起构建Java和Scala代码,AspectJ编译器可以一起构建AspectJ和Java代码,但仅此而已

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


这与从ant或命令行编译时需要做的相同。

我已经为此奋斗了一段时间。以下是我的解决方案:

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

然后将Ant构建器添加到Scala项目中。只要scala builder运行并进行编织,它就会运行。它使用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>


下面的Matt R是正确的,可以同时安装两个插件,但可能存在一些我们不知道的不兼容性。因此,请更具体地说明发生了什么。\@Andrew Eisenberg基本上,一旦我将Scala Builder添加到项目中,AspectJ编织者就会停止编织。如果我禁用scala builder,除了没有scala编译外,其他都可以正常工作。对……我知道发生了什么。不,我已经安装了两个插件。问题是,我想使用AspectJ来交叉处理我无法处理的关于特征的建议。我之前尝试的版本是夜间版本,但我会再试一次。这实际上就是我所做的。AspectJ+Java非常强大(我甚至认为它比Scala更强大)。但Scala在句法上获胜。如果只有Java7已经发布并带有闭包:)如果您使用的是基于注释的方面,那么完全可以在Scala项目中用Scala编写它们,然后用scalac和iajc编译它们。因此,有些项目可以使用Ant正确编译,但不能在Scala IDE中编译。我希望ScalaBuilder能够扩展到编织带注释的Scala方面。