2017-02-03 1 views
1

오늘 저는 제 맥북에 intelliJ 실론 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)에서 코드가 제대로 실행됩니다.

default 
    default.car 
    default.car.sha1 
    default.src 
    default.src.sha1 

내 빌드 구성 looks as follows :

폴더 '모듈'

에는 다음이 포함되어 있습니다.

는 IntelliJ에 플러그인이 올바르게 "기본"모듈을 처리하지 버그 수 있습니다 (파일 소스/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; 
    } 
} 

답변

3

제공된 스크린 샷은 실행 구성이 IntelliJ 모듈 (Use classpath of module[none]으로 설정 됨)을 기반으로하지 않음을 보여줍니다. 즉, modules 디렉토리가있는 프로젝트 폴더에서 이 아니고이 실행될 것입니다. 이 디렉토리에는 컴파일 된 코드가 들어 있으며, 은 default 모듈을 실행하도록 요청할 때 해당 디렉토리를 검색합니다.

일반적으로 실행 구성을 수동으로 생성하지 않아야합니다. 실행 가능한 함수의 이름 옆에있는 녹색 화살표를 클릭하면 Ceylon IDE가 자동으로 을 만들고을 올바른 실행 구성으로 구성합니다.

Run Ceylon function

는 기존 실행 구성을 수정 단순히 Use classpath of module 표시된 필드에 코드를 포함하는 인 IntelliJ 모듈을 선택합니다.

Ceylon IDE for IntelliJ를 시작하는 방법에 대한 자세한 내용은 getting started guide도 참조하십시오.

+1

새롭고 올바른 실행 구성을 자동으로 선택하도록 선택한 경우 나중에 또는 잘못 설치 한 구성을 삭제하는 것을 잊지 마십시오. 'Run'-> 'Edit configurations'에서 그렇게하십시오. – loldrup

0

입니다. 기본 모듈을 일반 모듈보다 더 많이 사용하기 때문에 사용하지 않는 경향이 있습니다.

모듈을 만들어 코드를 옮겨보십시오. 문제를 해결할 가능성이 가장 높습니다. 그렇다면이 버그를 여기에서 해결할 수있는 문제를 열 ​​수 있습니다. https://github.com/ceylon/ceylon-ide-intellij/issues/new

+0

이 설명은 나에게 꽤 비현실적인 것처럼 보입니다. 프로젝트 구성에서 문제가 될 가능성이 훨씬 큽니다. –

0

this question에서 첫 번째 대답은 새 모듈을 만드는 방법을 알려줍니다.

  • 새로운 프로젝트를 시작, 당신은 아마 당신의 모듈에 대한 복잡한 중첩 된 이름 지정 계층 구조를 필요가 없습니다

    은 그 대답에 몇 가지 의견이있다. 모듈 이름에 마침표를 사용하면 (예 : my.ceylon.example)이를 얻을 수 있으므로 main과 같은 간단한 이름을 사용하는 것이 좋습니다.
  • 새 모듈을 만들 때 (특히) '실행 가능 단위 이름'을 지정하라는 메시지가 표시됩니다. 이 필드의 목적은 프로그램을 시작할 때 IntelliJ에게 모듈의 어떤 클래스가 실행되어야 하는지를 알려주는 것입니다. 즉, 이것은 프로그램의 시작점이됩니다. 이에 적합한 이름은 main 일 수 있습니다.
  • 실론 프로젝트는 모듈로 나뉘며 모듈은 패키지로 나뉘며 패키지는 클래스와 최상위 기능으로 나뉩니다. 모듈을 만들면이 모듈 아래에 패키지가 자동으로 만들어집니다. 이 모듈에서 코드 파일의 경로는 'source/moduleName/packageName'입니다. 새 모듈을 만들 때 모듈의 첫 번째 패키지 이름을 지정하지 않아도됩니다. 대신 패키지에는 모듈 이름과 동일한 이름이 지정됩니다. 따라서 'main'이라는 모듈은 코드 파일의 경로로 source/main/main 경로를 갖습니다.
  • 새 모듈 폴더 (예 : source/main/main)에 세 개의 새 파일이 생성됩니다. 이전에 선택한 'Runnable unit name'의 이름을 가진 파일을 찾으십시오. 코드는이 파일에 들어가야합니다. 또한 코드에는 'Runnable unit name'으로 선택한 정확히 동일한 이름의 클래스가 있어야합니다..
  • 대답은 멋진 용어 '실행 단위'를 사용했는데, 실론 단위는 실론 코드가 포함 된 파일을 의미합니다.
  • 새 모듈을 실행하기 전에 기존 '기본'모듈이 포함 된 파일을 삭제해야합니다.
  • 모듈 이름을 대문자로 시작할 수 없습니다.
  • modules/은 컴파일 된 코드가 나오는 출력 디렉토리입니다.프로젝트가 빌드 될 때 source/의 코드에서 자동으로 다시 생성됩니다.
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의 REPO를 볼 것으로 예상,하지만 거기 아니다.

ceylon run.car이 컴파일 된 modules 디렉토리에서 찾고 있지 않습니다. 따라서 질문은 목록에서 해당 repo가 ​​누락 된 이유입니다.

프로젝트 구조> 모듈> 실론> 저장소에서 무엇을 볼 수 있습니까?