2011-02-04 18 views
5

में एस्पेक्टजे और स्कैला मिक्सिंग कोई भी एक्लाइप्स 3.6 में अच्छी तरह से खेलने के लिए स्कैला और एस्पेक्टजे (एजेडीटी) प्राप्त करने में सक्षम है?एक ग्रहण परियोजना

ऐसा लगता है कि स्कैला के वीवर विवाद AspectJ के वीवर के साथ है। मुझे आशा है कि मुझे कुछ याद आ रहा है।

संपादित करें: अच्छी तरह से एक ही परियोजना

+1

मैट नीचे आर सही है, तो यह दो प्लगइन्स एक साथ स्थापित करने के लिए संभव है, लेकिन वहाँ कुछ असंगतियां है कि हम के बारे में पता नहीं कर रहे हैं हो सकता है। तो, कृपया क्या हो रहा है के बारे में अधिक विशिष्ट हो।\ –

+0

@ एंड्रयू ईसेनबर्ग मूल रूप से पहलू बिल्डर परियोजना के लिए स्कैला बिल्डर जोड़ने के बाद बुनाई बंद कर देता है। यदि मैं स्केल बिल्डर को अक्षम करता हूं तो सभी स्कैला संकलन को छोड़कर ठीक काम करता है। –

+0

सही ... मैं देख रहा हूं कि क्या हो रहा है। –

उत्तर

3

के लिए जेडीटी बुनाई छोड़ अपनी टिप्पणी के आधार पर, ऐसा लगता है कि आप एक ही परियोजना को एस्पेक्टजे बिल्डर और स्कैला बिल्डर दोनों का उपयोग करना चाहते हैं। यह नहीं हो सकता। प्रत्येक व्यक्ति अपने स्वयं के कंपाइलर को प्रतिनिधि करता है और दो कंपाइलर्स (अभी तक) संगत नहीं हैं। स्कैला कंपाइलर जावा और स्कैला कोड को एक साथ बना सकता है, और AspectJ कंपाइलर AspectJ और जावा कोड को एक साथ बना सकता है, लेकिन यह है।

यदि आप अपने स्कैला कोड पर लागू होने के पहलुओं को चाहते हैं, तो आपको अपने एस्पेक्टजे और स्कैला कोड को अलग-अलग परियोजनाओं में अलग करना होगा और फिर अपने AspectJ प्रोजेक्ट के अंदर स्कैला प्रोजेक्ट को जोड़ना होगा।

यह वही बात है जो आपको करने की आवश्यकता होगी यदि आप चींटी या कमांड लाइन से संकलित थे।

+0

यह वास्तव में मैंने किया है। AspectJ + जावा बेहद शक्तिशाली है (मैं स्कैला से भी अधिक शक्तिशाली तर्क दूंगा)। लेकिन स्कैला वाक्य रचनात्मक रूप से जीतता है। यदि केवल जावा 7 बाहर था और बंद होने के साथ :) –

+0

यदि आप एनोटेशन-आधारित पहलुओं का उपयोग कर रहे हैं, तो उन्हें स्कैला में स्कैला में लिखना पूरी तरह से संभव है, फिर उन्हें स्केलैक और iajc के साथ संकलित करें। ऐसे में ऐसी परियोजनाएं हैं जो चींटी के साथ ठीक से संकलित होती हैं लेकिन स्कैला आईडीई में नहीं। मुझे उम्मीद है कि स्कैलाबिल्डर को एनोटेटेड स्कैला पहलुओं को बुनाई के लिए बढ़ाया गया है। – 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 पर एक प्रयोगात्मक रात निर्माण अद्यतन साइट है हताश कर रहे हैं।

आज, वर्तमान हर रात को आप Helios 3.6 के साथ की कोशिश कर सकते हो सकता है:

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

+0

जिस संस्करण को मैंने थोड़ी देर पहले कोशिश की थी वह रात थी लेकिन मैं फिर कोशिश करूंगा। –

-1

आप होने का अर्थ यह है दोनों स्काला प्लग-इन और AJDT एक साथ स्थापित? यह निश्चित रूप से करने योग्य है - उदाहरण के लिए, स्कैला प्लग-इन को विकसित करने के लिए इसकी आवश्यकता है।

मैं निम्नलिखित है:

  • स्थापित AspectJ देव उपकरण + बुनाई सेवा सुविधा
  • स्थापित स्काला आईडीई ग्रहण है, लेकिन इसके बाद के संस्करण स्काला
+0

नहीं मेरे पास दोनों प्लगइन्स स्थापित हैं। समस्या यह है कि मैं सलाह के चारों ओर क्रॉस काटने के लिए AspectJ का उपयोग करना चाहता हूं कि मैं लक्षणों के साथ नहीं कर सकता। –

0

मैं कुछ समय से इसके साथ संघर्ष कर रहा हूं। यहां मेरा समाधान है:

सबसे पहले, अपने स्कैला और अपने AspectJ कोड को विभिन्न परियोजनाओं में अलग करें।

फिर अपने स्कैला प्रोजेक्ट में एक चींटी निर्माता जोड़ें। जब भी स्केल बिल्डर रन करता है और बुनाई करता है तो यह चलता है। यह कक्षापथ निकालने के लिए 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> 
संबंधित मुद्दे