Whiteship's Note


웹드라이버(webdriver) pom.xml에 의존성 추가하기

Good Tools : 2009.05.08 15:27


참조: http://code.google.com/p/webdriver/wiki/UsingWebDriver

라이브러리가 담겨있는 저장소부터 등록합니다.

            <repository>
                <id>openqa-releases</id>
                <name>OpenQA Releases</name>
                <url>http://nexus.openqa.org/content/repositories/releases</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>

다음은 사용할 드라이버에 따라 각기 다른 의존성을 추가합니다.

HTMLUnit 드라이버를 사용할 때는

    <dependency>
        <groupId>org.openqa.selenium.webdriver</groupId>
        <artifactId>webdriver-htmlunit</artifactId>
        <version>0.6.964</version>
    </dependency>

Firefox 드라이버를 사용할 때는

    <dependency>
        <groupId>org.openqa.selenium.webdriver</groupId>
        <artifactId>webdriver-firefox</artifactId>
        <version>0.6.964</version>
    </dependency>

IE 드라이버를 사용할 때는

    <dependency>
        <groupId>org.openqa.selenium.webdriver</groupId>
        <artifactId>webdriver-ie</artifactId>
        <version>0.6.964</version>
    </dependency>

사파리 드라이버를 사용할 때는

    <dependency>
        <groupId>org.openqa.selenium.webdriver</groupId>
        <artifactId>webdriver-safari</artifactId>
        <version>0.6.964</version>
    </dependency>

마지막으로 서포트 클래스들을 사용하고 싶다면 아래 의존성을 추가합니다.

    <dependency>
        <groupId>org.openqa.selenium.webdriver</groupId>
        <artifactId>webdriver-support</artifactId>
        <version>0.6.964</version>
    </dependency>
top


토비님의 S3Matrix 소스 보기 1. pom.xml

모하니?/Coding : 2009.04.24 10:55


하루(실제로는 몇 시간 만에 작성했으로 예상되지만)만에 TDD로 개발한 프로젝트 소스를 볼 수 있다니 정말 즐겁습니다.

이 프로젝트는 취지부터가 멋집니다. 사부님이 자신이 하던 일이 반복적이여서 그걸 프로그래밍으로 간편화한 것이 바로 이 프로젝트 입니다. pom.xml 파일을 뒤져가며 엑셀로 그 의존성들을 정리하던 것을 자동화 한 거죠. 멋집니다. +_+ 그러면서도 다른 사람들에게 유용한 정보를 줄 수 있으니... 그저 멋지다는 표현밖엔 안 떠오르네요. 역시 사부님이라고 부를만 합니다.

생각난김에 이쯤에서 왜 자꾸 토비님을 사부님이라고 하는지 언급해야겠네요. 토비님은 제가 '토비님'이라고 부르는걸 달갑지 않게 생각하십니다. 채팅에서도 몇 번이나 지적을 받았고, 실제 업무 중에도 오프라인에서 '토비님'이라고 불렀다가 '이건 아니다.' 싶었습니다. 그래서 회사에서 직책 명칭인 '이사님'이라고 불렀지만 업무 중이 아닐 때에도 자꾸 '이사님'이라고 부르기는 뭐해서 마땅한 표현이 없을까 고민하던 중 떠오른 단어가 '사부님'입니다. 원래는 형이라고 부르라고 했었는데, '형'이라고 하기엔 나이차도 좀 있으시고 '형'같지 않은 포스가 느껴져서 '형님'이라고 하니까 무슨 안 그래도 덩치도 좀 있으신데 '형님' '형님'하면 안 좋은 이미지가 떠오르자나요. 그래서 이것 저것 많이 알려주시기도 하고, 업무 할 때 사수 역할도 해주시니까 '사부님'이라고 부르기로 했습니다.

사설이 엄청 길었는데요. 각설하고, 본론으로 들어가겠습니다. 일단 사부님 코드를 받으시면 에러가 납니다. 의존성 에러죠. 해결하기가 힘들겁니다. 왜냐면, 상위 pom을 사용했는데 그 상위 pom이 여러분 로컬에 있을리 만무하자나요.ㅋㅋ 하지만 그렇다고 해서 pom.xml에 상위 pom이 배포되어 있는 저장소 정보가 있는 것도 아닙니다. 결국 빨간 불이 들어온 소스 코드를 보시면서 테스트도 돌려보지 못하고 눈팅만 해야 할지도 모릅니다.

캬캬캬. 그래서 제가 pom.xml을 조금 수정했습니다. 이걸 쓰시면 테스트를 돌려보실 수 있을 겁니다.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.opensprout</groupId>
    <artifactId>s3matrix</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <dependencies>
        <!-- opensprout's spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.web.servlet</artifactId>
            <version>[3.0.0.BUILD-00000000000000,9.9.9.BUILD]</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.aspects</artifactId>
            <version>[3.0.0.BUILD-00000000000000,9.9.9.BUILD]</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.orm</artifactId>
            <version>[3.0.0.BUILD-00000000000000,9.9.9.BUILD]</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.test</artifactId>
            <version>[3.0.0.BUILD-00000000000000,9.9.9.BUILD]</version>
        </dependency>
        <!-- excel -->
        <dependency>
            <groupId>net.sourceforge.jexcelapi</groupId>
            <artifactId>com.springsource.jxl</artifactId>
            <version>2.6.6</version>
        </dependency>
        <!-- test -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.6</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-library</artifactId>
            <version>1.1</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>spring-latest</id>
            <name>Spring Latest by OpenSprout</name>
            <url>http://www.opensprout.org/nexus/content/repositories/spring-latest</url>
        </repository>
        <repository>
            <id>com.springsource.repository.bundles.external</id>
            <name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name>
            <url>http://repository.springsource.com/maven/bundles/external</url>
        </repository>
        <repository>
            <id>opensprout nexus</id>
            <name>OpenSprout Nexus public</name>
            <url>http://www.opensprout.org/nexus/content/groups/public</url>
        </repository>
    </repositories>
</project>


top


pom.xml에 종속성 추가하기





본 영상에서는 m2eclipse를 사용했지만, 사용한 기능은 매우 기본적이며 다른 기능들은 매우 미약하기 때문에, q4e 사용을 권장합니다.

위 동영상에서는 그냥 간단하게 라이브러리가 어떻게 추가되는건지만 확인해 보세요. 잘 보시면 transitive하게 spring-core가 의존하는 commons-logging을 가져온 것도 볼 수 있습니다. 바로 이러한 transitive dependency 추가 기능이 maven의 장점이면서 단점이 되기도 하는데요. 그걸 잘 다루면 별 일 안 생깁니다.
top

TAG maven, pom.xml