为什么scala编译器参数传递给我的程序?

时间:2011-11-20 10:18:18

标签: scala maven command-line-arguments

我的pom.xml中有以下内容:

<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 个答案:

答案 0 :(得分:1)

如果您想尝试使用sbt,项目根目录中的简单build.sbt

name := "test"

version := "0.1-SNAPSHOT"

scalaVersion := "2.9.1"

然后你可以运行它

% xsbt
> run Hello World
...
Hello
World