0

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

我已经使用 DAML 创建了一个智能合约,如果您执行mvn compile了工作并正确生成了类,则版本为 0.12.20。

升级到版本 0.12.24 时,在 DAML 中修复了一些错误,mvn compile无法找到 file.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

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

  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.util.

4

1 回答 1

0

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

于 2019-06-11T13:41:05.283 回答