我最近注意到 Maven 生成的 Scala 编译器警告如下所示:
[WARNING] 警告:有 4 个弃用警告;使用 -deprecation 重新运行以获取详细信息
[WARNING] 警告:有 3 个功能警告;使用 -feature 重新运行以获取详细信息
[WARNING] 发现两个警告
我并没有立即明白如何遵循警告的说明,因此我可以获得有关如何更改代码的详细信息。
我最近注意到 Maven 生成的 Scala 编译器警告如下所示:
[WARNING] 警告:有 4 个弃用警告;使用 -deprecation 重新运行以获取详细信息
[WARNING] 警告:有 3 个功能警告;使用 -feature 重新运行以获取详细信息
[WARNING] 发现两个警告
我并没有立即明白如何遵循警告的说明,因此我可以获得有关如何更改代码的详细信息。
为了让 Philip 的回答更清楚(如插件页面中指定的那样),请将以下内容添加到您的 pom.xml 文件中:
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
...
<configuration>
<args>
<arg>-deprecation</arg>
<arg>-feature</arg>
</args>
</configuration>
</plugin>
事实证明,这两条指令来自 Scala 编译器,因此需要在幕后发生的事情是使用 -deprecation 或 -feature 调用 scalac,如下所述:
http://www.scala-lang.org/files/archive/nightly/docs-2.10.3/manual/html/scalac.html
(实际上我从未在任何地方看到解释过 -feature 选项,但我能够按如下方式指定它)
我正在使用 scala-maven-plugin 并使用此处描述的 scala:compile 进行编译:
http://davidb.github.io/scala-maven-plugin/compile-mojo.html
相关参数描述如下:
http://davidb.github.io/scala-maven-plugin/compile-mojo.html#addScalacArgs
因此,我发现有两个有用的 Maven 命令是:
mvn clean compile -DaddScalacArgs=-deprecation mvn clean compile -DaddScalacArgs=-feature