2011-11-20 70 views
3

我在我的pom.xml如下:爲什麼scala編譯器參數傳遞給我的程序?

<plugin> 
    <groupId>org.scala-tools</groupId> 
    <artifactId>maven-scala-plugin</artifactId> 
    <configuration> 
    <scalaVersion>${scala.version}</scalaVersion> 
     <args> 
     <arg>-unchecked</arg> 
     <arg>-deprecation</arg> 
     </args> 
    </configuration> 
</plugin> 

我的主要目標是:

object App { 
    def main(args: Array[String]) { 
    args.foreach(println) 
    } 
} 

而且它打印:

$ mvn scala:run -DaddArgs='hello|world' 
[...] 
-unchecked 
-deprecation 
hello 
world 

爲什麼?前兩個意圖是編譯器參數(並且它們實際上是這樣工作的),並且我不想在我的程序中看到它們!

我該怎麼做才能避免這種行爲?

+1

有效地似乎很奇怪。你應該考慮使用sbt。 – David

+0

@David我試過了,但它看起來並不像它命名的那麼簡單:)我想我會發布關於sbt的另一個問題。 – vadipp

+2

我在本頁的最後一節發現了這個錯誤的方法:http://scala-tools.org/mvnsites/maven-scala-plugin/example_compile.html – vadipp

回答

1

如果你想使用SBT嘗試,一個簡單的build.sbt在你的項目根:

name := "test" 

version := "0.1-SNAPSHOT" 

scalaVersion := "2.9.1" 

那麼你就可以運行它

% xsbt 
> run Hello World 
... 
Hello 
World 
+0

是的,我知道這一點,謝謝。我對sbt的問題有點深刻,涉及到圖書館的依賴關係。沒關係:) – vadipp

+0

所以,最後我開始使用SBT,所以這個被接受。謝謝! – vadipp

+0

@ Double-V很好聽:-) – David

相關問題