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

标签 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

为什么?前两个旨在用作编译器参数(它们实际上是这样工作的),我不想在程序中看到它们!

我该怎么做才能避免这种行为?

最佳答案

如果要尝试使用sbt,请在项目根目录中添加一个简单的build.sbt:

name := "test"

version := "0.1-SNAPSHOT"

scalaVersion := "2.9.1"

然后你可以运行它
% xsbt
> run Hello World
...
Hello
World

关于scala - 为什么将scala编译器参数传递给我的程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8200863/

相关文章:

Scala Play 表单验证 : required boolean isn't mandatory

maven - 将 Android 库上传到 Bintray - userOrg 参数被忽略

java - 无法解析类型 java.lang.CharSequence。它是从所需的 .class 文件间接引用的

java - 如何使用系统属性实现参数?

python argparse 处理任意数字选项(如 HEAD(1))

python - Windows 上的 check_call 和命令行参数

java - 使 sbt 重新编译受影响的 Java 源代码

java - scala 和 java 数组

scala - 具有错误处理功能的镜头/棱镜

java - Maven Tycho 相对于 Eclipse PDE 导出 RCP 工具的优势