Eclipse "이 컴파일 단위는 Java 프로젝트의 빌드 경로에 없습니다."


78

Eclipse에서 작동하도록 자동 완성을 얻을 수 없습니다.

svn에서 프로젝트를 진행 중입니다. Eclipse에서 프로젝트를 설정했습니다.

파일-> 가져 오기-> 프로젝트로 체크 아웃-> 새 프로젝트 마법사.

Enterprise Java Application을 선택하고 다운로드 중입니다. 그리고 메시지를 표시하는 팝업 대화 상자가 나타날 것으로 예상대로 자동 완성이 작동하는 것을 제외하고는 모든 것이 잘 작동하는 것 같습니다.

이 컴파일 단위는 Java 프로젝트의 빌드 경로에 없습니다.

나는 그것을 구글링했지만 모든 사람들은 프로젝트가 자바 프로젝트 여야한다고 말한다. 하지만 이봐! 무엇이 문제입니까?

최신 정보

svn의 카탈로그 구조는 다음과 같습니다.

-Project_name
  -application
     -META-INF
       application.xml
       MANIFEST.MF
  +build
  +db
  +deploy
  +dist
  +lib
  +properties
  +script
  -src
     -META-INF
        someother.xml (datasource info)
        persistence.xml
        folder hierarchy with source files (should be package)
  -web
     some folders
          .
          .
     files
       .
       .
     -WEB-INF
        faces-config.xml
        jboss-web.xml
        web.xml
     build_win.xml

Eclipse에 소스 파일 폴더, application.xml 및 기타 구성 xml 파일이있는 위치를 어떻게 알려주나요?


stackoverflow.com/questions/908489/… 를 확인하셨습니까 ?
VonC

답변:


132

상위 프로젝트 아래에 다중 모듈 Maven 프로젝트가있는 경우 Maven 상위 프로젝트에서 파일을 편집하고 있지 않은지 확인하십시오.


19
이 답변에는 중첩 된 하위 모듈 / 프로젝트가있는 프로젝트에서 이클립스 탐색 및 패키지 탐색기가 각각의 연속 부모 아래에 각 하위 프로젝트 파일이 표시되고 자체적으로 표시됩니다. 편집 할 때 자동 완성 기능을 사용하려면 위의 다른 답변에서 제안 된 다른 모든 것이 올바른 경우 탐색기에서 자체적으로 (즉, 부모 프로젝트가 아닌) 자식 프로젝트를 사용해야합니다.
Pete_ch

2
부모 프로젝트에서만 클래스를 편집하는 방법을 이해할 수 없습니까 ?? 그래서 왜 그렇게하지 말라고? 부모 프로젝트가 있고 하위 프로젝트 / 모듈이 있으며 주어진 오류가 발생한 그 중 하나를 편집하고있었습니다.
SAMITHA Chathuranga

아주 간단합니다. 이 문제가되지-메이븐 프로젝트에서 발생하지 않는 한 허용 대답을해야한다
mister270

+1. 나에게 일어난 일은 내가 a를 ctrl + H하고 어떤 텍스트를 위해 파일을 수색 했다는 것이다. 결과에 파일이 표시되어 파일을 클릭했지만 내가 있던 파일이 자식 모듈 대신 부모를 통해 열린다는 것을 알지 못했습니다. class.method를 입력하려고 할 때이 오류가 발생했습니다.
prograhammer

이러한 상황에서 볼 수있는 것은 분명히 두 개의 "다른"위치에있는 동일한 파일이지만 대답에서 알 수 있듯이 상위 프로젝트가 아닌 프로젝트 자체에서 편집합니다.
Jeff

17

내 프로젝트 중 하나를 제대로 확인하기 위해 내가 한 것은

1) svn에서 프로젝트 가져 오기

      file-->import-->SVN-Checkout Projects From SVN

2) 프로젝트를 찾은 다음 "다음으로 체크 아웃"대화 ​​상자에서 "새 프로젝트 마법사를 사용하여 구성된 프로젝트로 체크 아웃"라디오 버튼을 선택했는지 확인합니다.

3) 규칙적인 단계를 거칩니다.

마법사가 프로젝트를 제대로 가져오고 일식을 설정합니다 ....

마법사를 사용하지 않고는 모든 지옥이 풀린다는 것을 알았습니다 .....

도움이 되었기를 바랍니다...


17

이것은 내 .project 파일에서 누락 된 것입니다.

    <projectDescription>
        ...
        <buildSpec>
            <buildCommand>
                <name>org.eclipse.jdt.core.javabuilder</name>
                <arguments>
                </arguments>
            </buildCommand>
        </buildspec>
        ...
        ...
        ...
        <natures>
            <nature>org.eclipse.jdt.core.javanature</nature>
            <nature>org.eclipse.m2e.core.maven2Nature</nature>
        </natures>
        ...
    </projectDescription>

내 .project 파일에 jdt.core 특성을 추가하면 문제가 해결되었습니다.
Urchin

위의 변경 후에는 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Maven을 선택하고 프로젝트를 업데이트하여 위의 변경 사항을 적용해야했습니다. 그런 다음 작동했습니다.
Kumar S

10

나는 때때로이 문제가 있으며 종종 프로젝트가 Java 프로젝트로 표시되지 않았기 때문에 발생합니다. 프로젝트 속성> 프로젝트 패싯> Java를 선택하여이를 변경할 수 있습니다. 그런 다음 해당 프로젝트를 올바르게 구성해야 할 수도 있지만 이것이 문제의 일부일 수 있습니다.


5

내 자바 프로젝트를 메이븐 프로젝트로 변환 한 후에도이 문제가 발생했습니다. 다음과 같이 해결했습니다.

프로젝트-> 프로젝트 패싯-> Java를 클릭 한 다음 적용을 클릭하십시오.


STS 3.8.2를 사용하고 있으며 폴더별로 프로젝트를 가져 왔습니다. Java 파일은 표준 src/main/java위치가 아닌 단일 하위 디렉토리에 있었습니다. 그게 문제인지는 모르겠지만 실행 메뉴에는 옵션이 없었습니다. 감사합니다. 몇 가지 추가 단계가 있습니다. Properties전에 가야 했어요 Project Facets. RuntimesJava 버전을 선택해야하는 탭 도 있습니다 .
wsams

4

폴더에 .project 파일이 있습니까?

나는 같은 문제가 있습니다. .project 파일이 없다는 것을 깨달았습니다.


4

너무 많은 댓글에서 잘못된 것을 선택할 수 있지만 Maven을 사용하는 경우 일반적인 명령 프롬프트 빌드 및 정리를 수행하고 있습니까?

cmd로 이동하여 작업 공간 (일반적으로 c : / workspace)으로 이동합니다. 그런 다음 "mvn clean install -DskipTests"를 실행하십시오.

그 후 "mvn eclipse : eclipse eclipse : clean"을 실행하십시오 (파이핑에 대해 걱정할 필요가 없습니다).

또한 프로젝트에 모듈 종속성이 있습니까?

그렇다면 적용을 클릭하여 종속성을 제거한 다음 종속성을 읽으십시오. 때때로 buildpath와 혼동 될 때 일식을 바로 설정할 수 있습니다.

도움이 되었기를 바랍니다!


대신 "mvn eclipse : clean eclipse : eclipse"가되어야하지 않습니까? 명령을 올바르게 이해하면 먼저 Eclipse 프로젝트를 생성하고 즉시 제거합니다. 이는 버그처럼 보입니다.
Frank Schmitt 2016 년

2

다른 프로젝트에서 .classpath 및 .project를 복사하고 값을 올바르게 조정했습니다.

해당 파일을 편집하기 전에 프로젝트를 닫고 현실 (어쨌든 현실)을 반영한다고 확신하면 Eclipse에서 프로젝트를 다시 엽니 다.

작업 공간이 재 구축되고 모든 작업이 그때부터 작동합니다.


2

제 경우에는 메이븐 프로젝트입니다

이클립스에서 프로젝트를 삭제하고 소스는 남겨두고 이클립스 파일 시스템에서 삭제

.target / .classpath .project .settings / open eclipse Again Import Maven 프로젝트

이것은 문제를 해결했습니다


2

-clean 시작 옵션을 사용하여 eclipse를 실행하려고 할 수 있습니다. 작업 공간의 Eclipse 메타 데이터를 다시 빌드하려고합니다.



1

다음은 Eclipse에서 소스 폴더를 만드는 단계입니다.

  1. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동하십시오.
  2. 속성 대화 상자에서 "Java 빌드 경로"를 선택합니다.
  3. 소스 폴더를 제거하기 위해 제거 버튼을 클릭하거나 소스 폴더를 추가하기 위해 추가 버튼을 클릭하지 않은 경우 소스 탭을 선택하고 소스 폴더가 올바른지 확인하십시오.

빌드 경로 구성 옵션의 주문 및 내보내기 탭에서 프로젝트에 소스 폴더가 나타나는 순서를 제어 할 수 있습니다.


1

같은 문제가 있었지만 Maven과 함께했습니다. 그 이유는 실행 프로그램을 잘못 선택했기 때문입니다. 내 프로젝트는 Maven의 Embedded 설치에서 사용할 수없는 전역 설정을 사용했습니다. 외부 (Window-> Preferences-> Maven-> Installations)로 변경하여 문제를 해결했습니다.


1

내가 한 일은 svn에서 프로젝트를 가져온 후 작업 공간에서 프로젝트를 삭제하고 로컬에서 maven 프로젝트로 가져온 것입니다. 그런 다음 preferences-> maven-> usersettings-> usersettings 상자에서 apache maven 폴더-> conf-> settings.xml에있을 settings.xml의 경로를 제공했습니다.

그리고 그것은 나를 위해 문제를 해결했습니다.


1

소스 파일은 패키지 탐색기 보기 에서 '패키지'아이콘이있는 구조에 있어야합니다 ( > 보기 표시 > 패키지 탐색기 아래의 메뉴 또는 Ctrl+를 누르고 pack3 입력 ).

Eclipse의 Java 프로젝트

그렇지 않은 경우 루트 패키지가 포함 된 폴더 ( 위 이미지의 src )를 선택 하고 컨텍스트 메뉴에서 소스 폴더로 사용 (오른쪽 클릭)을 선택합니다.


그러나 그것은 Java Enterprise 프로젝트입니다. 폴더를 마우스 오른쪽 버튼으로 클릭하면 소스 폴더로 사용과 같은 것이 없습니다.
l245c4l 2010

@ l245c4l : 패키지 탐색기 보기 에서 시도해보십시오 (세부 정보를 추가하기 위해 내 대답을 편집했습니다).
Fabian Steeg

아니 그것도 작동하지 않습니다. 메뉴에는 이러한 요소가 없습니다. 내 질문을 다시 확인하고 업데이트 했으므로 이제 svn 프로젝트 구조가 있습니다. 시간 내 줘서 고마워.
l245c4l 2010

0

메시지에서 알 수 있듯이 파일이 프로젝트의 Java 빌드 경로 (예 : 소스 폴더)에 있습니까?


0

같은 문제가있었습니다. 솔루션 : 컨텍스트 메뉴-> Maven-> 종속성 관리 활성화

체크 아웃 할 때 분실 된 이유를 모릅니다.


0

.src 폴더 외부에 기본 클래스를 포함하여 내 파일이 있기 때문에이 오류가 발생했습니다.


0

나를 위해 일한 것은 다른 프로젝트의 .settings / 디렉토리를 복사하는 것이 었습니다.


0

터미널에서 "mvn eclipse : eclipse"를 실행하십시오.


2
이 코드는 질문에 답할 수 있지만 문제를 해결하는 방법 및 / 또는 이유 에 대한 추가 컨텍스트 를 제공 하면 답변의 장기적인 가치가 향상됩니다. 지금 질문하는 사람뿐만 아니라 미래에 독자를 위해 질문에 답하고 있다는 것을 기억하십시오! 제발 편집 설명을 추가하고, 적용 무엇 제한 및 가정의 표시를 제공하는 답변을. 이 답변이 다른 답변보다 더 적절한 이유를 언급하는 것도 나쁘지 않습니다.
Dev-iL

0

나처럼 초보자라면 작업중인 파일이 Java 프로젝트 인 상위 폴더를 확인하는 것만 큼 간단 할 수도 있습니다.

나는 단순히 Java 폴더를 만든 다음 폴더에 파일을 만들고 작동 할 것으로 예상하는 실수를 저질렀습니다. 이 오류를 방지하려면 파일이 프로젝트에 있어야합니다.


0

중첩 된 마이크로 서비스로 구성된 Maven 프로젝트를 가져온 후에도 동일한 문제가 발생했습니다. 이것이 Eclipse에서 해결 된 방법입니다.

  1. 프로젝트를 마우스 오른쪽 버튼으로 클릭
  2. 구성 선택
  3. "중첩 된 프로젝트 구성 및 감지"를 선택합니다.

-1

예를 들어 4 개의 프로젝트와 1 개의 루트 프로젝트가있는 경우 다른 하위 프로젝트를 추가하여 루트 프로젝트의 경로를 빌드합니다. 빌드 경로가 선택되지 않은 경우 .project 파일에 아래 코드를 추가하십시오.

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>rootProject</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
    </natures>
</projectDescription>

-1
  1. 프로젝트 삭제 (파일 시스템에서 원본 파일을 삭제하지 마십시오)
  2. 패키지 탐색기 영역을 마우스 오른쪽 버튼으로 클릭하고 가져 오기를 마우스 오른쪽 버튼으로 클릭합니다.
  3. Maven 폴더로 이동하여 기존 Maven 프로젝트 가져 오기를 누르십시오.

도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.