파란하늘의 지식창고
article thumbnail
반응형

멀쩡하게 잘 돌아가던 프로젝트가 Spring Boot 2.4.X로 버전을 바꾸면서 eclipse에서 다음과 같은 에러가 발생하였다.

Description	Resource	Path	Location	Type
Input length = 1 (org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources:default-resources:process-resources)

org.apache.maven.plugin.MojoExecutionException: Input length = 1
	at org.apache.maven.plugins.resources.ResourcesMojo.execute(ResourcesMojo.java:362)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
	at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:332)
	at org.eclipse.m2e.core.internal.embedder.MavenImpl.lambda$8(MavenImpl.java:1380)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:114)
	at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1379)
	at org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant.build(MojoExecutionBuildParticipant.java:54)
	at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.build(MavenBuilderImpl.java:135)
	at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:169)
	at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:1)
	at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$1(MavenBuilder.java:114)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:114)
	at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$0(MavenBuilder.java:105)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:153)
	at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:101)
	at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:88)
	at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:197)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:832)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:220)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:263)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:316)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:319)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:371)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:392)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:154)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:244)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.apache.maven.shared.filtering.MavenFilteringException: Input length = 1
	at org.apache.maven.shared.filtering.DefaultMavenFileFilter.copyFile(DefaultMavenFileFilter.java:113)
	at org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering.filterResources(DefaultMavenResourcesFiltering.java:262)
	at org.apache.maven.plugins.resources.ResourcesMojo.execute(ResourcesMojo.java:356)
	... 31 more
Caused by: java.nio.charset.MalformedInputException: Input length = 1
	at java.base/java.nio.charset.CoderResult.throwException(CoderResult.java:274)
	at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:352)
	at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
	at java.base/java.io.InputStreamReader.read(InputStreamReader.java:181)
	at java.base/java.io.BufferedReader.read1(BufferedReader.java:210)
	at java.base/java.io.BufferedReader.read(BufferedReader.java:287)
	at java.base/java.io.BufferedReader.fill(BufferedReader.java:161)
	at java.base/java.io.BufferedReader.read(BufferedReader.java:182)
	at org.apache.maven.shared.filtering.BoundedReader.read(BoundedReader.java:85)
	at org.apache.maven.shared.filtering.MultiDelimiterInterpolatorFilterReaderLineEnding.read(MultiDelimiterInterpolatorFilterReaderLineEnding.java:235)
	at org.apache.maven.shared.filtering.MultiDelimiterInterpolatorFilterReaderLineEnding.read(MultiDelimiterInterpolatorFilterReaderLineEnding.java:197)
	at java.base/java.io.Reader.read(Reader.java:229)
	at org.apache.maven.shared.utils.io.IOUtil.copy(IOUtil.java:199)
	at org.apache.maven.shared.utils.io.IOUtil.copy(IOUtil.java:181)
	at org.apache.maven.shared.utils.io.FileUtils.copyFile(FileUtils.java:1908)
	at org.apache.maven.shared.filtering.DefaultMavenFileFilter.copyFile(DefaultMavenFileFilter.java:98)
	... 33 more
	pom.xml	/[해당프로젝트]	line 9	Maven Build Problem

구글에서 검색하면 보통 encoding 문제여서 properties 파일에 한글로 주석을 달거나 하면서 깨진 부분을 찾아 고치라고 나오는데 1차적으로 해당 부분을 수정해서 해결을 하였지만 어떤 프로젝트는 properties에 깨진 부분이 없었다.

이런 경우 어느 부분이 에러가 발생하였는지는 다음처럼 찾으면 된다.

mvn resources:resources -X

위와 같이 실행하면 실제 resource 파일을 복사하다 중간에 에러가 발생하는 것 까지 debug mode로 모두 출력하여 보여준다.

내가 겪은 부분은 src/main/resources/static/에 bootstrap 관련 파일이 들어가 있었는데 그중 font 디렉터리를 copy 하면서 발생한 에러였다.

이 경우 webjars 사용으로 변경하여 해당 문제를 해결하였다.

<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>bootstrap</artifactId>
</dependency>

이 문제가 발생한 이유는 spring boot 2.4.0 이후 maven-resources-plugin이 3.1.0에서 3.2.0으로 버전이 변경되었다.

Maven Resources Plugin 3.2.0 Release Note

아래 Bug 수정이 적용되면서 생긴 문제가 아닐까 싶다.

  • [MRESOURCES-171] - ISO8859-1 properties files get changed into UTF-8 when filtered

2021-04-10 추가

Spring Boot 2.4.4로 버전을 올리면서 다시 발생하였는데 이번에 발생한 경우는 위 경우와 다른 케이스였다.

Spring Cloud Config Server를 띄우면서 해당 에러가 발생하였고 Spring Boot 2.4.3 이전까지 정상 동작하다가 2.4.4에서 발생하였다.

해당 서버의 경우 별다른 소스 코드 없이 단순히 Spring Cloud Config Server만 띄웠는데 문제가 발생한 건 암호화 사용을 하기 위해 encrypt keyStore로 등록한 jks 파일이었다.

이 경우 빌드 조건에 다음과 같은 설정을 추가하여 해결하였다.

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <configuration>
                <nonFilteredFileExtensions>
                    <nonFilteredFileExtension>jks</nonFilteredFileExtension>
                </nonFilteredFileExtensions>
            </configuration>
        </plugin>
    </plugins>
</build>

왜 2.4.3 버전까지 정상 동작 한 것인지는 아직 찾지 못했다.

관련해서 찾은 stack overflow 질문은 다음과 같다.

stackoverflow.com/questions/65910112/maven-clean-install-failed-to-execute-goal-org-apache-maven-pluginsmaven-resou

 

Maven clean install: Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources

I don´t know what´s the problem. Trying to install maven for a college project. I already installed maven as instructed here. Picture Environmental Variables, maven version in cmd And I also tried...

stackoverflow.com

 

반응형

'Study > Java' 카테고리의 다른 글

Spring Boot Data Redis 사용해보기  (0) 2021.06.09
Spring Boot 2.5 Release Notes  (0) 2021.05.26
Spring Reference Documentation 한글 번역  (0) 2021.04.13
spring boot에서 webjars 사용하기  (0) 2021.03.23
JDK 16 New Features  (0) 2021.03.18
Spring Boot Logging  (0) 2021.01.04
Upgrading to Spring Framework 5.3  (0) 2020.12.01
What's New in Spring Framework 5.3  (0) 2020.12.01
Spring Boot Config Data Migration Guide  (0) 2020.11.18
Spring Boot 2.4 Release Notes  (0) 2020.11.14
profile

파란하늘의 지식창고

@Bluesky_

내용이 유익했다면 광고 배너를 클릭 해주세요