티스토리 뷰

기존 프로젝트를 maven으로 마이그레이션할 때 디렉토리 구조를 어떻게 할 것인가 하는 문제때문에 늘 고민하게 된다. 결론부터 말하면, 두가지 방법이 있다.

1. 기존 디렉토리 구조를 그대로 두고, maven을 적절하게 설정한다.
2. 기존 디렉토리 구조를 maven의 표준(권장) 디렉토리 구조로 변경한다.

후자의 경우가 확실하긴 하지만, cvs를 쓰고 있다면 대략 낭패(?!)다. svn을 쓴다면 그나마 다행이지만... 여러 사람이 함께 작업하는 프로젝트라면 조금 귀찮은 문제들이 있다.

내가 기존에 사용하던 프로젝트의 디렉토리 구조는 (대충) 다음과 같다:

  • src
    • java : *.java
    • res : *.properties 등의 리소스들...
    • test: *Test.java 와 리소스들...
  • build
    • classes : 출력 파일들
  • WebContent : 웹 리소스들((Eclipse/WTP를 사용할 경우에만 필요하다)

전형적인 ant용 디렉토리 구조인데, 이 구조를 손대지 않고 maven으로 빌드를 하기 위해서 pom.xml에 다음과 같은 내용을 추가했다:

    <build>
        <directory>${basedir}/build</directory>
        <sourceDirectory>${basedir}/src/java</sourceDirectory>
        <outputDirectory>${basedir}/build/classes</outputDirectory>
        <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
        <testOutputDirectory>${basedir}/build/test-classes</testOutputDirectory>
        <resources>
            <resource>
                <directory>${basedir}/src/res</directory>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>${basedir}/src/test</directory>
                <excludes>
                    <exclude>*.java</exclude>
                </excludes>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <warSourceDirectory>${basedir}/WebContent</warSourceDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <reporting>
        <outputDirectory>${basedir}/build/site</outputDirectory>
    </reporting>


약간 골치아팠던 것이, 내 경우엔 test용 클래스와 리소스들을 하나의 디렉토리(src/test)에 몰아넣었는데, maven은 따로 구분한다(src/test/java와 src/test/resources)는 점이다. 그래서 testSourceDirectory와 testResource 둘 모두에 같은 디렉토리를 설정하고 testResource에 *.java를 exclude하도록 설정했다.

대충 돌아가는것 같은데, 뭔가 빠트린게 있을까.. 살짝 불안^^;

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함