메이븐의 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 폴더 구성도 다음과 같이 바뀝니다.


in project jars


참고: http://stackoverflow.com/questions/5597099/maven-add-jars-through-systempath-system-but-not-added-to-war-or-anywhere-else

+ Recent posts