2012-10-07 22 views
6

2 खेलने के लिए एक Maven परियोजना स्थानांतरित करना चाहते हैं/एसबीटी:स्रोत प्ले में संकलित किया जाएगा 2

मैं Maven परियोजना है, जो मैं test/resources/ में ले जाया गया में src/test/resources में परीक्षण के लिए कुछ संसाधनों की थी प्ले प्रोजेक्ट में (his answer on Stackoverflow के लिए श्लेचर्ड के लिए धन्यवाद)।

यह सामान्य फ़ाइलों (टेक्स्ट, बाइनरी डेटा ...) के लिए काम करता है, लेकिन अब मुझे जावा-स्रोत फ़ाइलों के साथ समस्याएं हैं जो test/resources/ निर्देशिका में भी हैं (मुझे विभिन्न जावा पर मेरी परियोजना में जावा पार्सर का परीक्षण करना है स्रोत फ़ाइलें)। जब मैं test खेल में कॉल करता हूं, तो इन फ़ाइलों को भी संकलित किया जाएगा और इसलिए मुझे त्रुटियां मिलती हैं।

मैं कैसे रोक सकता हूं कि test/resources/ में फ़ाइलों को Play/sbt से संकलित किया जाएगा?

+0

यह फ़ाइल नाम बदलने के लिए मदद करोगे तुम कर सकते हो PlayProject लाइन

import com.typesafe.sbteclipse.core.EclipsePlugin._ val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(defaultScalaSettings:_*).settings( ,resourceDirectory in Test <<= baseDirectory(_/"test-resources") ,EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource ) 

इस के बाद से पहले एक आयात जोड़ने की आवश्यकता होगी? उदाहरण के लिए MyClass.java MyClass.txt पर? – Schleichardt

+0

हां यह काम करता है, लेकिन इन संसाधन निर्देशिका में जावा फाइलें हैं। तो शायद एक बेहतर समाधान मौजूद है? – Sonson123

+2

यह http://stackoverflow.com/questions/7371802/sbt-to-exclude-source-directory –

उत्तर

8

चूंकि आपकी टेस्ट संसाधन निर्देशिका ऐसी निर्देशिका में है जो जावा स्रोतों को संकलित करती है, तो आप अपना परीक्षण संसाधन फ़ोल्डर ले जा सकते हैं। इस अपनी सेटिंग्स में जोड़ें:

resourceDirectory in Test <<= (baseDirectory) apply {(baseDir: File) => baseDir/"testResources"} 

परियोजना में उदाहरण के लिए/Build.scala:

play "show test:resource-directory" 
+0

आपकी विस्तृत उत्तर के लिए धन्यवाद फिर से मदद कर सकता है, यह अंत में स्रोत फ़ाइलों के साथ भी काम करता है। – Sonson123

+0

इस कॉन्फ़िगरेशन और eclipsify कमांड के बाद, ग्रहण क्लासपाथ के पथ के रूप में "testResources" नहीं देखेगा। हमें आगे क्या करना चाहिए? – raisercostin

2

आप परीक्षण जोड़ना चाहते हैं:

val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
    resourceDirectory in Test <<= (baseDirectory) apply {(baseDir: File) => baseDir/"testResources"} 
) 

नियंत्रण के साथ सांत्वना में अपने परिवर्तन - स्रोतों को आपको अपने PlayProject में निम्नलिखित जोड़कर प्रोजेक्ट/Build.scala को संशोधित करना चाहिए .... .settings (

इन लाइनों के बीच एक खाली रेखा छोड़ने के लिए मत भूलना। स्रोत फ़ोल्डरों को ग्रहण करने की घोषणा करना न भूलें। इसके अलावा, आप

play test 
play test-only xxx.yyy.zzz.TheTest 
play eclipsify 
+0

मुझे अभी भी संसाधनों के साथ कुछ समस्याएं हैं जो ग्रहण से चलने पर नहीं मिलती हैं, लेकिन मुझे लगता है कि यह मेरे लिए एक कार्यशील ग्रहण समाधान के लिए एक कदम आगे है। – Sonson123

संबंधित मुद्दे