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的情况下遇到相同的错误。 步骤:
daml new quickstart quickstart-java
cd quickstart
daml build
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。
答案 0 :(得分:0)
默认情况下,daml build
在dist/<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中使用的命令。希望对您有所帮助!