sitelink1  
sitelink2  
sitelink3  

벌써 십여번이 넘게 실수(?) 하게 되는데

 

build.gradle 을 수정하고 프로젝트를 마우스 우클릭하여, "Gradle > Refresh Gradle Project" 를 실행하면 project 와 app 에 설정한 classpath 의 내용이 초기화 된다.

 

classpath 에 추가했던 의존성 있는 라이브러리들이 모두 사라지는데

그래서 gradle 을 안쓰고 일일이 jar 를 넣어서 관리해보려 했더니 implementation 에 걸려 있는 라이브러리들도 의존하는 추가 라이브러리들이 어마어마 하더라...

포기하고 다시 gradle 을 써서 리프레쉬 했더니 classpath 내용이 자꾸 초기화 된다. ㅜ.ㅜ

 

하도 답답해서 Bard 와 Copilot 에게 다음과 같이 질문해보았다.

 

[질문]

eclipse 에서 생성한 gradle project 에서 refresh gradle project 를 수행했을때 project 의 classpath 가 초기화되는 현상이 일어나지 않게 하는 방법 알려줘

 

[Bard]

Eclipse에서 생성한 Gradle 프로젝트에서 refresh Gradle Project를 수행했을 때 프로젝트의 classpath가 초기화되는 현상이 일어나는 이유는 Eclipse가 Gradle 프로젝트를 빌드하기 위해 Gradle을 실행할 때 clean 옵션을 사용하기 때문입니다. clean 옵션은 프로젝트의 빌드 결과를 제거하고 깨끗한 상태로 만듭니다. 이로 인해 프로젝트의 classpath도 초기화됩니다.

 

이 현상을 방지하기 위해서는 Eclipse에서 Gradle 프로젝트를 빌드할 때 clean 옵션을 사용하지 않도록 설정해야 합니다. 다음과 같은 방법으로 설정할 수 있습니다.

  1. Eclipse에서 Gradle 프로젝트를 엽니다.
  2. Window > Preferences를 선택합니다.
  3. Gradle > Build를 선택합니다.
  4. Build Automatically 옵션을 선택합니다.
  5. Build Options에서 Clean 옵션을 선택 해제합니다.

이 설정을 적용하면 Eclipse는 Gradle 프로젝트를 빌드할 때 clean 옵션을 사용하지 않습니다. 따라서 프로젝트의 classpath가 초기화되는 현상이 발생하지 않습니다.

 

또는 다음과 같은 방법으로 설정할 수 있습니다.

  1. Eclipse에서 Gradle 프로젝트를 엽니다.
  2. Project Explorer에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Properties를 선택합니다.
  3. Gradle > Build를 선택합니다.
  4. Build Automatically 옵션을 선택합니다.
  5. Build Options에서 Clean 옵션을 선택 해제합니다.

이 설정도 clean 옵션을 사용하지 않도록 설정하는 효과가 있습니다.

 
[Copilot]
Eclipse에서 Gradle 프로젝트를 새로 고침할 때 클래스패스가 초기화되는 현상을 방지하는 방법은 몇 가지가 있습니다.
 
1. Gradle 설정 변경: build.gradle 파일에 Eclipse 플러그인을 적용하고, eclipse 작업을 사용자 정의하여 클래스패스 설정을 보존할 수 있습니다1. 예를 들어, 다음과 같이 build.gradle 파일을 수정할 수 있습니다:
 
apply plugin: 'java'
apply plugin: 'eclipse'
 
eclipse {
    classpath {
        file {
            whenMerged {
                entries.removeAll { it.path.contains('REMOVE_THIS_ENTRY') }
            }
        }
    }
}
 
위의 코드에서 REMOVE_THIS_ENTRY 부분을 제거하고 싶은 클래스패스 항목으로 변경하면 됩니다2.
 
2. 수동으로 클래스패스 복원: Gradle 프로젝트를 새로 고침한 후에 gradle eclipse 작업을 실행하여 클래스패스를 복원할 수 있습니다3. 이 방법은 일시적인 해결책일 수 있지만, 프로젝트를 새로 고침할 때마다 수동으로 실행해야 합니다3.
 
3. 자동 동기화 활성화: Eclipse에서는 build.gradle 파일이 업데이트되면 클래스패스가 자동으로 업데이트되지 않습니다4. 이를 해결하기 위해 Gradle 프로젝트의 컨텍스트 메뉴에서 ‘Gradle’ > 'Refresh Gradle Project’를 선택하거나, 빌드 파일의 변경 사항에 대한 자동 동기화를 활성화할 수 있습니다4.
 
이러한 방법들을 통해 Eclipse에서 Gradle 프로젝트를 새로 고침할 때 클래스패스가 초기화되는 현상을 방지할 수 있습니다. 그러나 이러한 방법들이 모든 경우에 적합하지는 않을 수 있으므로, 프로젝트의 요구 사항에 따라 적절한 방법을 선택하는 것이 중요합니다. 추가적인 질문이 있으시다면 언제든지 물어보세요! ????
 
 
두 AI 답변 모두 만족스럽지 못하다.
심지어 Bard 는 할루이네이션이라서 설정을 찾을 수도 없다.
뻔뻔한 밧녀석;;
어쩔 수 없이 당분간은 gradle 로 의존성 추가하면 갱신후 수동으로 라이브러리를 설정해가며 사용해야겠다.
 
gradle refresh 를 수행한 후엔 다음을 확인해야 한다.
  1. project 와 app 에서 'java build path/Libraries' 에 'Add Library' 로 필요한 라이브러리들을 추가한다. (JUnit, Server Runtime, Web App Libraries 등등)
  2. project 와 app 에서 우클릭하여 Properties 창을 열고 'Java Build Path > Source' 에서 source 와 output 폴더를 지정해줘야 한다.
 
 
 
 
 
번호 제목 글쓴이 날짜 조회 수
39 [POST, 2021.06.28] Gradle을 이용해 Web 어플리케이션을 만들고 빌드하고 실행하기 file 황제낙엽 2023.12.30 0
38 build.gradle 의 dependencies 황제낙엽 2023.12.29 0
37 error: unmappable character 황제낙엽 2023.12.29 0
36 Task :compileJava FAILED 황제낙엽 2023.12.29 0
35 사용자 라이브러리 파일(*.jar) 를 의존성에 추가하는 방법 황제낙엽 2023.12.28 0
34 Windows 에 Gradle 설치 황제낙엽 2023.12.23 0
33 Eclipse, Gradle 프로젝트 생성, Dynamic Web Project 로 변경 황제낙엽 2023.12.23 0
32 Eclipse 에서 Gradle Project 를 WAR 로 배포하기 황제낙엽 2023.12.01 0
» Eclipse 에서 생성한 Gradle Project 를 리프레쉬 했을때 주의할 점 황제낙엽 2023.11.30 1
30 Gradle 기본 다지기 1편 file 황제낙엽 2023.11.16 0
29 최신 Gradle User Manual 황제낙엽 2023.11.16 0
28 Gradle 을 Groovy 에서 Kotlin으로 마이그레이션 file 황제낙엽 2023.11.16 0
27 [2014~2015] gradle 영문 튜토리얼 (Getting Started With Gradle) 황제낙엽 2023.07.13 2
26 [Intellij, Spring Boot, Lombok, Gradle] 프로젝트에 lombok 추가 file 황제낙엽 2023.07.12 2
25 Maven 프로젝트를 Gradle로 변경하기 file 황제낙엽 2023.07.12 0
24 Maven, Gradle 의 비교와 Gradle + Eclipse에서 gradle의 빌드가 안될때 황제낙엽 2023.07.11 5
23 Jenkins 백업 (Thinbackup) file 황제낙엽 2021.07.22 28
22 Jenkins Restful API로 Job 과 Build 정보 조회 황제낙엽 2020.09.02 43
21 Jenkins+TFS 연동 예제 황제낙엽 2020.09.01 28
20 [Jenkins] Java Sample with Jenkins Restful API 황제낙엽 2020.08.12 38