Maven : 명령 줄에서 대상 디렉터리 경로를 변경하는 방법은 무엇입니까?
(경우에 따라 다른 대상 디렉토리를 사용하고 싶습니다)
Maven : 명령 줄에서 대상 디렉터리 경로를 변경하는 방법은 무엇입니까?
(경우에 따라 다른 대상 디렉토리를 사용하고 싶습니다)
target/
.
src/it/my-integration-test-project/pom.xml
만들지 않고 명령 줄에서 와 같이 통합 테스트를 빌드 target
하는 것입니다. 통합 테스트가 포함 된 프로젝트의 확인 단계의 일부로 실행될 때 복사됩니다.
답변:
프로필을 사용해야합니다.
<profiles>
<profile>
<id>otherOutputDir</id>
<build>
<directory>yourDirectory</directory>
</build>
</profile>
</profiles>
그리고 프로필로 maven을 시작하십시오.
mvn compile -PotherOutputDir
명령 줄에서 디렉토리를 정의하려면 다음과 같이 할 수 있습니다 ( 전혀 권장하지 않음 ).
<properties>
<buildDirectory>${project.basedir}/target</buildDirectory>
</properties>
<build>
<directory>${buildDirectory}</directory>
</build>
그리고 다음과 같이 컴파일하십시오.
mvn compile -DbuildDirectory=test
사용하여 대상 디렉토리를 변경할 수 없기 때문입니다. -Dproject.build.directory
-Dproject.build.directory
을 사용하려는 경우 사용 가능합니다. 이것은 -Dproject.build.directory
문제에 대한 해결 방법입니다 . 또한 첫 번째 솔루션에서는 경로를 한 번만 지정하면 명령 줄을 시작할 때 디렉토리 이름에 오타를 입력 할 수 없으며 IDE 등에서 작업하더라도이 솔루션을 쉽게 사용할 수 있습니다.
settings.xml
더 많은 이식성을 위해 명령 줄 대신 프로필을 활성화 할 수 있다는 것을 포함 할 수 있습니까?
Colin이 올바른 프로필을 사용해야합니다. 그러나 그의 대답은 프로필의 대상 디렉토리를 하드 코딩합니다. 대체 솔루션은 다음과 같은 프로필을 추가하는 것입니다.
<profile>
<id>alternateBuildDir</id>
<activation>
<property>
<name>alt.build.dir</name>
</property>
</activation>
<build>
<directory>${alt.build.dir}</directory>
</build>
</profile>
이렇게하면 POM, 사용자 설정 또는 명령 줄에서 제공 할 수있는 alt.build.dir 속성이 제공하는 모든 것으로 빌드 디렉토리를 변경하는 효과가 있습니다. 속성이 없으면 일반 대상 디렉터리에서 컴파일이 수행됩니다.
-Dalt.build.dir=~/mytarget
에 사용하는 것과 동일 하게 만들지 -D
않습니까?