执行daml构建后,DAML SDK 0.12.24 mvn编译失败

时间:2019-06-11 13:10:31

标签: maven daml

mvn compile在版本0.12.24的已编译dar文件中找不到自动生成的clase

我使用DAML创建了一个智能合约,如果您执行mvn compile可以正确地生成clase,那么该版本的版本为0.12.20。

升级到版本0.12.24时,DAML中已修复了一些错误,mvn compile无法找到文件中生成的clase。dar,即:

[ERROR] /Users/Pablo/Documents/everis/projects/PoC/stampchain-daml-app/src/main/java/com/digitalasset/quickstart/stampcontract/StampContractMain.java:[10,55] package com.digitalasset.quickstart.model.stampcontract does not exist

为了确保这不是我的代码中的问题,我创建了一个新的quickstarter项目,并尝试在无法从dar编译maven的情况下遇到相同的错误。 步骤:

  1. daml new quickstart quickstart-java
  2. cd quickstart
  3. daml build
  4. mvn compile

输出

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java (daml-codegen-java) on project daml-quickstart-java: An exception occured while executing the Java class. Input file '/Users/Pablo/Downloads/DAML/tempquickstarter/quickstart/target/daml/iou.dar' doesn't exist -> [Help 1]

如果您尝试使用sdk版本0.12.20的相同方法并生成Java。

1 个答案:

答案 0 :(得分:0)

默认情况下,daml builddist/<projectname>.dar中生成dar文件,因此在您的示例中它将创建dist/quickstart.dar。但是,快速入门示例中的代码生成已设置为期望target/daml/iou.dar中的dar。您可以传递-o target/daml/iou.dar来更改输出位置,因此完整命令为daml build -o target/daml/iou.dar。这也是quickstart guide中使用的命令。希望对您有所帮助!