Error/Server

[Jenkins] redundant cast to String

dev? 2024. 7. 5. 14:13
반응형

Jenkins에서 빌드를 진행 할 때, 아래와 같이 

10:57:01 /var/lib/jenkins/workspace/프로젝트폴더/src/main/java/n02_api/n01_login/LoginController.java:[125,24] [cast] redundant cast to String

10:57:01 [ERROR] /var/lib/jenkins/workspace/ 프로젝트폴더 /src/main/java/n02_api/n01_login/LoginController.java:[126,18] [cast] redundant cast to String

오류가 발생하였다. 

개발 툴(Intellij)에서 같은 오류가 발생하는지 확인 하였으나, Build가 성공되며 아무 문제가 없었다. 


[원인]

오류의 내용은

"redundant cast to String" 오류로 불필요한 형 변환 (캐스팅)이 있다는 것을 의미한다.

자바에서는 객체를 특정 타입으로 변환할 때 캐스팅을 사용하는데, 이 경우는 이미 String 타입으로 되어 있는 객체를 다시 String으로 캐스팅하는 불필요한 작업을 지적하는 것이다. 

그러나, 인텔리제이에서는 문제가 없는 빌드 되는 것으로 보아 

예상 1) 컴파일러 옵션의 차이

인텔리제이와 Jenkins에서 사용하는 컴파일러의 옵션이 다를 수 있습니다. Jenkins에서는 stricter한 컴파일러 옵션이 설정되어 있어서 인텔리제이에서는 경고로 처리되는 것이 Jenkins에서는 오류로 처리 한 경우.

예상 2) 빌드 도구 설정 차이

인텔리제이는 자체적인 빌드 시스템을 사용하고 있을 수 있고, Jenkins는 Maven, Gradle 같은 외부 빌드 도구를 사용할 수 있어 각 빌드 도구의 설정이 달라 발생한 경우. 


[해결]

- 해당 프로젝트는 Maven을 사용하여 Maven에 대한 해결을 정리 

 

pom.xml 파일에서 maven-compiler-plugin 설정을 변경하여 경고를 무시

compilerArgs에 -Xlint:none 옵션을 추가

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <compilerArgs>
                    <arg>-Xlint:none</arg>
                </compilerArgs>
            </configuration>
        </plugin>
    </plugins>
</build>
반응형