今天我在我的macbook上安装了intelliJ ceylon IDE。在编译我的项目时,我收到以下消息
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/bin/java "-Dceylon.system.repo=/Users/Laust/Library/ApplicationSupport/IdeaIC2016.3/CeylonIDEA/classes/embeddedDist/repo" -Didea.launcher.port=7533 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Users/Laust/Library/Application Support/IdeaIC2016.3/CeylonIDEA/classes/embeddedDist/lib/ceylon-bootstrap.jar:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain com.redhat.ceylon.launcher.Bootstrap run --run main default/unversioned
ceylon run: Module default/unversioned not found in the following repositories:
/Users/Laust/Library/Application Support/IdeaIC2016.
3/CeylonIDEA/classes/embeddedDist/repo
/Users/Laust/.ceylon/cache
https://modules.ceylon-lang.org/repo/1
[Maven] Aether
[NPM] npm
Process finished with exit code 1
代码在我的其他计算机上运行正常(Windows 7)。
文件夹'modules'包含以下内容:
default
default.car
default.car.sha1
default.src
default.src.sha1
和我的构建配置looks as follows。
这是我的代码(在文件source / main.ceylon中)
shared void main() {
print("Generating pretty sweet g-code:");
{Gcommand+} myGcommands = {
G00( Vector3(0.0, 0.0, 0.0) ),
G00( Vector3(9.0, 0.0, 0.0) ),
G00( Vector3(9.0, 9.0, 0.0) ),
G00( Vector3(0.0, 9.0, 0.0) ),
G00( Vector3(0.0, 0.0, 0.0) )
};
GcodeProgram myGcodeProgram = GcodeProgram( *myGcommands );
print(myGcodeProgram.toString());
}
"A carthesian coordinate class"
alias X => Float;
alias Y => Float;
alias Z => Float;
class Vector3(shared X x, shared Y y, shared Z z) {
}
"An abstract spec class for all G-code command classes"
abstract class Gcommand() {
shared formal String toString();
}
"G-code command for moving in a straight line at rapid speed"
class G00( Vector3 endPoint ) extends Gcommand() {
toString() => "G0 " + "X" + endPoint.x.string
+ "Y" + endPoint.y.string
+ "Z" + endPoint.z.string + "\n";
}
class GcodeProgram( Gcommand+ gcommands ) {
variable String stringifiedGcodeProgram = "";
shared String toString() {
for (gcommand in gcommands) {
stringifiedGcodeProgram = stringifiedGcodeProgram + gcommand.toString();
}
return stringifiedGcodeProgram;
}
}
答案 0 :(得分:3)
您提供的屏幕截图显示运行配置不基于任何IntelliJ模块(Use classpath of module
设置为[none]
)。这意味着配置将不在modules
目录所在的项目文件夹中运行。该目录包含已编译的代码,当您要求它运行ceylon run
模块时,default
将查找该目录。
一般来说,您应该避免手动创建运行配置。通过单击runnable函数名称旁边的绿色箭头,Ceylon IDE将自动创建并配置正确的运行配置。
要修复现有的运行配置,只需在标有Use classpath of module
的字段中选择包含代码的IntelliJ模块。
有关如何开始使用Ceylon IDE for IntelliJ的更多信息,另请参阅getting started guide。
答案 1 :(得分:1)
这里的项目设置似乎有些混乱。请注意正在搜索的repos列表:
Module default/unversioned not found in the following repositories:
/Users/Laust/Library/Application Support/IdeaIC2016.3/CeylonIDEA/classes/embeddedDist/repo
/Users/Laust/.ceylon/cache
https://modules.ceylon-lang.org/repo/1
[Maven] Aether
[NPM] npm
我希望看到your-project-dir/modules
形式的回购作为该列表中的第二个条目,但它不存在。
也就是说,ceylon run
没有查看编译的modules
所在的.car
目录。所以问题是为什么列表中缺少回购。
您在项目结构中看到了什么>模块>锡兰>库?
答案 2 :(得分:0)
这可能是IntelliJ插件未处理的错误"默认"模块正确。我们倾向于不使用默认模块,因为它们比常规模块更受限制。
尝试创建模块并将代码移动到该模块。这很可能会解决问题。如果是这样,您可以打开问题以修复此错误:https://github.com/ceylon/ceylon-ide-intellij/issues/new
答案 3 :(得分:0)
在this question中,第一个(也是唯一的)答案讲述了如何创建新模块。
我对这个答案有一些评论:
my.ceylon.example
),你会得到它,所以我建议你坚持一个简单的名称,如main
。main
。source/main/main
作为其代码文件的路径。source/main/main
)中,将创建三个新文件。找到以' Runnable单位名称命名的文件'你之前选择的。 您的代码应该进入此文件。此外,您的代码应该有一个与您选择的' Runnable单位名称完全相同的类 。modules/
是编译代码所在的输出目录。在构建项目时,它会自动从source/
中的代码重新创建。