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 Ant 로 Java Application 실행시 Target 에 파라미터를 입력하여 Arguments 로 전달하여 실행시키기 file 황제낙엽 2012.06.05 2020
38 Jenkins Rest API 사용기 file 황제낙엽 2020.03.26 859
37 1900개가 넘는 java컴파일시 Ant의 설정 황제낙엽 2007.02.28 678
36 ANT에서 Classpath 설정시 순서 주의 황제낙엽 2010.07.10 364
35 Eclipse 의 auto compile 과 ANT의 compile 황제낙엽 2007.02.28 279
34 [Maven] 로컬 레파지터리에 사용자 jar 추가하기 file 황제낙엽 2010.04.20 217
33 Maven 툴을 이용한 효율적인 프로젝트 관리 방안 황제낙엽 2007.01.30 148
32 Eclipse에서 Ant+xdoclet 를 이용한 web.xml, struts-config.xml 자동생성 황제낙엽 2007.03.03 125
31 Ant로 UTF-8 엔코딩하기 (프로젝트 변환) 황제낙엽 2007.07.03 73
30 Ant에서 "${java.class.path}"이 의미하는바 황제낙엽 2010.07.10 56
29 Jenkins의 Restful API file 황제낙엽 2020.08.11 50
28 jenkins에서 tfs에 접속하여 브랜치와 변경집합으로 소스를 다운로드하는 예제 황제낙엽 2020.08.11 44
27 Jenkins Restful API로 Job 과 Build 정보 조회 황제낙엽 2020.09.02 43
26 ANT 를 이용한 RMI 컴파일 ( rmic 로 stub 생성하기 ) 황제낙엽 2010.05.26 43
25 Ant 의 사용 용례와 사용법 file 황제낙엽 2007.07.16 39
24 [Jenkins] Java Sample with Jenkins Restful API 황제낙엽 2020.08.12 38
23 ANT 작성예제 (build.xml , build.properties) file 황제낙엽 2007.05.16 36
22 Jenkins 백업 (Thinbackup) file 황제낙엽 2021.07.22 28
21 Jenkins+TFS 연동 예제 황제낙엽 2020.09.01 28
20 Nexus Repository 황제낙엽 2020.05.20 28