인텔리제의 경우 여러개의 Artifact를 만들 수 있다.

Aratifact는 공예품이라는 뜻으로 본인이 만든 하나의 산물이라고 생각하면되겠다.

본인의 경우 아래 사진을 보면 2개의 Artifact가 있다.

하나는 D1212:war(A1이라 부르겠다.) 하나는 D1212:wer exploded(A2라 부르겠다.) 이렇게 두개가 있다.

이렇게 두개가 있을 때 실수할 수 있는 부분에 대하여 다뤄보고자한다.

A2는 A1에서 폭발되어진 것이다.

사진을 보면 해당 폴더에 A1있어야 하지만

아래 폴더를 보면 A2만 있다.

이 부분은 어렵게 생각하지말고 A2가 A1의 연장이라고 생각하면될 것 같다.

그럼 다시 Artifacts를 보자

아래 사진을 보면 A1과 A2의 차이를 알겠는가

lib의 차이이다.

A2는 A1이 폭발의 산물이다.

그렇기 때문에 A1의 lib는 폭발되면서 A2로 모두갔다.

아래 A2의 추가된 lib는 새로 dependency를 추가하면서 추가된 것이다.

그런데 여기서 문제는 우리가 실수로 A1만 lib를 추가하고 A2는 추가 안할 수도 있다는 것이다.

 

그러므로 꼭 새로 dependency를 추가하면 A2에 추가하도록하자 A1은 이제 버리는 것이기 때문에

아니면 삭제하는 것도 좋을 것이다.

 

여기서 본인이 겪었던 문제이다.

사진에 표시한 부분만 보면된다.

정리하자만 우측에 lib에는 있는데, 컴파일하면 multipartResolver가 없다고 오류가 발생하는 것이다.

원인은 아래와 같다.

A1에만 추가하고 A2에는 추가를 안한것이였다.

그렇다고 문제가 있는 것은 아니고

톰캣에는 A2만 추가되어 있다.

그렇기 때문에 A2에 해당 lib가 없엇기 때문에 오류가 발생한 거였다.

 

문제를 해결하기 위해서 Artifact를 추가하거나

아래처럼 A2만 남기고 나머지를 삭제하는 방법으로 해결할 수 있다.

그리고 Project Structure에서도 A2에 lib를 추가하고

A2은 삭제 진행하였다.

위와 같이 하여 문제를 해결했다.

+ Recent posts