Maven antrun 플러그인을 사용하여 테스트 중에 리소스 파일을 복사합니다.

4031 단어 Maven

개요



테스트를 실행하기 전에 myproject.properties 파일을 myproject.ja_JP.properties로 복사합니다.

왜 이런 일을 하고 있는가?



단위 테스트시에 아무래도 각국어 자원을 원한다.

우선 원래 파일을 복사해 넘어간다.

원래 파일을 변경하면, 그것을 각국어에 반영하지 않으면 안된다.

너무 귀찮다.

테스트 할 때 원본 파일을 복사해야합니까? < 이마 코코!

antrun 플러그인을 사용하여 파일 복사



resources 플러그인에는 특정 파일을 복제하는 기능이 없습니다.

antrun 플러그인이 resources 플러그인의 수명 주기 단계인 process-test-resources 단계에서 실행 중입니다.

테스트시의 자원 카피처는 ${project.build.testOutputDirectory} 에 들어가 있으므로, 그것을 ant 의 프로퍼티로서 사용할 수 있도록(듯이) 하고 있습니다.

pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <!-- (略)-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <phase>process-test-resources</phase>
                        <configuration>
                            <target>
                                <property name="output_dir" value="${project.build.testOutputDirectory}"/>
                                <copy file="${output_dir}/myproject.properties"
                                      tofile="${output_dir}/myproject.ja_JP.properties" />
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

이제 test-compile 단계를 실행할 때 리소스 파일이 복사됩니다.

좋은 웹페이지 즐겨찾기