Проект Ballerina не импортирует пакет и выдает ошибку компиляции - PullRequest
0 голосов
/ 27 сентября 2018

Проект 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"

Я пытаюсь использовать функцию в contributions_from_outsiders из weekly_mail_notifier.bal

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

1 Ответ

0 голосов
/ 27 сентября 2018

То, что вы указали в качестве оператора импорта пакета в 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, которая определена в любом исходном файле балерины в любом каталоге.Более подробную информацию о пакетах и ​​структуре балерины можно найти здесь: https://ballerina.io/learn/how-to-structure-ballerina-code/#packages

...