메이븐의 scope는 compile, runtime, test, provided, system 이 있습니다. 이 중에서 custom jar를 관리하기 위해서 system scope를 지정해서 사용했었는데, war파일 패키징에서 누락되게 됩니다. WEB-INF/lib 폴더에 복사되지 않는다는 뜻입니다. 이 때문에 다음과 같이 코드를 작성했다면, in-project 저장소를 구성해서 변경하는 것이 좋습니다.
<!-- custom -->
<dependency>
<groupId>Acme.JPG</groupId>
<artifactId>AcmeGif</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${basedir}/libs/AcmeGif-1.0.0.jar</systemPath>
</dependency>
<dependency>
<groupId>com.cubrid</groupId>
<artifactId>cubrid-jdbc</artifactId>
<version>8.3.1.0152</version>
<scope>system</scope>
<systemPath>${basedir}/libs/cubrid-jdbc-8.3.1.0152.jar</systemPath>
</dependency>
위 세팅을 다음과 같이 변경합니다.
<repositories>
<repository>
<id>in-project</id>
<name>In Project Repo</name>
<url>file://${project.basedir}/libs</url>
</repository>
</repositories>
<!-- custom -->
<dependency>
<groupId>Acme.JPG</groupId>
<artifactId>AcmeGif</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.cubrid</groupId>
<artifactId>cubrid-jdbc</artifactId>
<version>8.3.1.0152</version>
</dependency>
libs 폴더 구성도 다음과 같이 바뀝니다.