Ballerina 项目不会导入包并给出编译错误

Ballerina project won't import package and gives compile error

我正在从事的 Ballerina 项目结构如下。

.
Ballerina.toml
LICENSE
README.md
ballerina-internal.log
ballerina.conf
contributions_from_outsiders_log
org
  └── wso2
       └── contributions_from_outsiders
           ├── ballerina-internal.log
           ├── const.bal
           ├── database_client.bal
           ├── gmail_client.bal
           └── structs.bal
 weekly_mail_notifier.bal

我的 Ballerina.toml 文件的内容是:

[project]
org-name = "pasanwijesinghe"
version = "0.0.1"

我正在尝试使用 weekly_mail_notifier.bal

contributions_from_outsiders 中的函数
import org.wso2.contributions_from_outsiders;

function main (string[] args) {
    contributions_from_outsiders:generateMailBody();
}

构建出现以下错误

Compiling source
weekly_mail_notifier.bal
invalid organization name recieved: '$anon'. organization name should be lowercase and alphanumeric, underscore is can be used. should be less than 256 characters.
error: ./weekly_mail_notifier.bal:17:1: cannot resolve package 'org.wso2.contributions_from_outsiders'
pasanwijesinghe/org:0.0.1
error: ./weekly_mail_notifier.bal:24:5: undefined package 'contributions_from_outsiders'
error: ./weekly_mail_notifier.bal:24:5: undefined function 'generateMailBody'
ballerina: compilation contains errors

您在 weekly_mail_notifier.bal 中作为包导入语句给出的内容在这里是错误的。导入包语句的格式应为 <organization-name>/<package-name>。根据您的项目结构,组织名称是 "pasanwijesinghe",它来自 Ballerina.toml 文件,包名称在这里是 "org"。 "org" 派生于项目源所在的第一个目录。在芭蕾舞女演员项目中,所有顶级目录都将被视为一个包。所以正确的导入语句应该是:

import pasanwijesinghe/org;

function main (string[] args) {
    org:generateMailBody();
    // rest of the program
}

在这里,我假设您的项目中有一个函数 generateMailBody 在任何目录下的任何 ballerina 源文件中定义。可以从这里找到有关 ballerina 包和结构的更多信息:https://ballerina.io/learn/how-to-structure-ballerina-code/#packages