我有一個scala項目,我使用Maven和maven-scala-plugin進行編譯。我需要在編譯的類中包含調試信息,並且我想知道是否有方法要求Maven或Scala插件來執行此操作。我發現this page使它聽起來可能,但不清楚將參數放在pom.xml中的位置。通過Maven編譯調試信息的scala類
如果可能,我希望這個選項是在pom.xml中指定的,而不是在命令行中指定的。
我有一個scala項目,我使用Maven和maven-scala-plugin進行編譯。我需要在編譯的類中包含調試信息,並且我想知道是否有方法要求Maven或Scala插件來執行此操作。我發現this page使它聽起來可能,但不清楚將參數放在pom.xml中的位置。通過Maven編譯調試信息的scala類
如果可能,我希望這個選項是在pom.xml中指定的,而不是在命令行中指定的。
編譯.class
帶有調試信息的文件需要在maven-scala-plugin
級別完成。在maven-compiler-plugin
處做這件事 - 順便說一下,我們可以在debug
選項的文檔中看到默認爲true的默認方式 - 這是沒用的,因爲它沒有編譯Scala源代碼。現在
,如果我們看一下scalac
man page,在scalac
編譯器有一個–g
選項,可以採取以下值:
「
none
」生成沒有調試信息,
「source
」只有產生源文件屬性
「line
」生成源和行號信息,
「vars
」生成源,行號和局部變量信息離子,
「notc
」生成所有上述內容,不會執行尾部呼叫優化。
的好消息是,scala:compile
具有可用於傳遞編譯additionnals參數一個不錯的args
可選參數。因此,使用它並通過-g
選項Scala編譯器,你只需要在Maven插件配置如下:
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>2.9.1</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<args>
<arg>-g:notc</arg>
</args>
...
</configuration>
</plugin>
我跳過配置(如repositories
,pluginRepositories
等其他地區),因爲這不是你要求的:)
@帕斯卡爾完美地工作。謝謝。 – Dave 2009-12-14 17:29:52