gradle build 에러 "CreateProcess error=206, 파일 이름이나 확장명이 너무 깁니다"

1. 에러 내용

bootRun 을 통해 서비스 실행 후 gradle build 중 아래와 같은 에러가 발생함

 

2. 해결

검색 시 경로가 길어서 문제가 될수 있다고 하여 해당 서비스 경로도 변경 해봤으나 증상이 동일

다른 케이스를 확인 중 build version 에 대한 문제가 발생 할 수 있다 하여 gradle version 을 update

  • 현재 버전 : gradle 6.7.1
  • 업데이트 버전 : gradle 6.8
  • 업데이트 방법 : ./gradlew wrapper --gradle-version 6.8
  • 참고 : 빌드는 bootRun service 디렉토리에서 실행해야합니다.(당연..)

springboot 에서 jsp-config include 사용


spring의 web.xml에 설정되어 있는 전역 사용 jspf파일을 springboot java 코드로 변환하는 방법

기존코드

<jsp-config>
    <jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<include-prelude>/WEB-INF/views/common/layout/taglib/comTaglibs.jspf</include-prelude>
</jsp-property-group>
</jsp-config>


변경코드

import lombok.extern.slf4j.Slf4j;
import org.apache.catalina.Context;
import org.apache.tomcat.util.descriptor.web.JspConfigDescriptorImpl;
import org.apache.tomcat.util.descriptor.web.JspPropertyGroup;
import org.apache.tomcat.util.descriptor.web.JspPropertyGroupDescriptorImpl;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

import java.util.Collections;

@Component
@Slf4j
public class ServletInitailizer extends SpringBootServletInitializer {

@Bean
public ConfigurableServletWebServerFactory configurableServletWebServerFactory ( ) {
return new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
super.postProcessContext(context);
JspPropertyGroup jspPropertyGroup = new JspPropertyGroup();
jspPropertyGroup.addUrlPattern("*.jsp");
jspPropertyGroup.addUrlPattern("*.jspf");
jspPropertyGroup.setPageEncoding("UTF-8");
jspPropertyGroup.setScriptingInvalid("true");
jspPropertyGroup.addIncludePrelude("/WEB-INF/views/common/layout/taglib/comTaglibs.jspf");
jspPropertyGroup.setTrimWhitespace("true");
jspPropertyGroup.setDefaultContentType("text/html");
JspPropertyGroupDescriptorImpl jspPropertyGroupDescriptor = new JspPropertyGroupDescriptorImpl(jspPropertyGroup);
context.setJspConfigDescriptor(new JspConfigDescriptorImpl(Collections.singletonList(jspPropertyGroupDescriptor), Collections.emptyList()));
}
};
}
}


@Slf4j 사용시 log cannot be resolved 에러 처리


전자정부 3.5에서 3.8로 변경 후 log cannot be resolved 에러가 사라지지않는 문제가 발생했다.

검색 결과 아래과 같이 처리함


1. 이클립스의 Maven Dependencies 에서 lombok-1.18.8.jar 파일을 찾는다.

2. lombok-1.18.8.jar 파일을 우클릭 -> run as -> java application -> 프로세스 진행

3. lombok jar 파일이 실행되며 install 창이 표시된다.

4. specify location -> 이클립스 위치의 eclipse.ini 를 선택 -> install/update 진행

5. install 이 정상적으로 실행 된다.

6. 이클립스로 돌아와 프로젝트를 clean -> restart 한다.

7. log 관련 에러가 사라진다.


+ Recent posts