사용자 지정 Maven 2 속성에 대한 기본값 설정
명령 줄에서 제어 할 수있는 플러그인이있는 Maven pom.xml이 있습니다. 내 컨트롤 속성에 대한 기본값을 설정하는 방법을 알아낼 수없는 동안 인터넷을 검색 한 후에도 모든 것이 정상적으로 작동합니다.
<plugin>
...
<configuration>
<param>${myProperty}</param>
</configuration>
...
</plugin>
그래서 Maven을 실행하면
mvn -DmyProperty=something ...
모든 것이 괜찮지 만 -DmyProperty=...
스위치 없이도 myProperty에 특정 값을 할당하고 싶습니다 . 어떻게 할 수 있습니까?
<build>/<properties>
아래와 같이 프로필 에 속성 기본값을 정의 할 수 있습니다 . 명령 줄에 속성 값을 제공 -DmyProperty=anotherValue
하면 POM의 정의가 무시됩니다. 즉, POM의 모든 속성 값 정의는 속성의 기본값으로 만 설정됩니다 .
<profile>
...
<properties>
<myProperty>defaultValue</myProperty>
</properties>
...
<configuration>
<param>${myProperty}</param>
</configuration>
...
</profile>
Taylor L의 접근 방식은 잘 작동하지만 추가 프로필이 필요하지 않습니다. POM 파일에서 속성 값을 선언하기 만하면됩니다.
<project>
...
<properties>
<!-- Sets the location that Apache Cargo will use to install containers when they are downloaded.
Executions of the plug-in should append the container name and version to this path.
E.g. apache-tomcat-5.5.20 -->
<cargo.container.install.dir>${user.home}/.m2/cargo/containers</cargo.container.install.dir>
</properties>
</project>
각 사용자가 자신의 기본값을 설정할 수 있도록하려는 경우 사용자 settings.xml 파일에서 속성을 설정할 수도 있습니다. 이 접근 방식을 사용하여 CI 서버가 일반 개발자의 일부 플러그인에 사용하는 자격 증명을 숨 깁니다.
아래와 같이 사용할 수 있습니다.
<profile>
<id>default</id>
<properties>
<env>default</env>
<myProperty>someValue</myProperty>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
@akostadinov의 솔루션은 일반적인 사용에 적합합니다 ... 그러나 원하는 속성이 종속성 해결 단계 (mvn pom 계층 구조 처리 초기에 ...) 중에 리액터 구성 요소에서 사용되는 경우 프로필 " none activation "테스트 메커니즘을 사용하여 확인해야합니다. 선택적 명령 줄 제공 값은 항상 pom.xml 내부에 제공된 값과 관련하여 우선 순위가 지정됩니다. 그리고 이것은 당신의 pom 계층 구조입니다.
이렇게하려면 부모 pom.xml에 다음과 같은 종류의 프로필을 추가합니다.
<profiles>
<profile>
<id>my.property</id>
<activation>
<property>
<name>!my.property</name>
</property>
</activation>
<properties>
<my.property>${an.other.property} or a_static_value</my.property>
</properties>
</profile>
</profiles>
이것은 당신을 위해 일할 수 있습니다.
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugin>
<configuration>
<param>Foo</param>
</configuration>
</plugin>
</build>
...
</profile>
<profile>
<id>notdefault</id>
...
<build>
<plugin>
<configuration>
<param>${myProperty}</param>
</configuration>
</plugin>
</build>
...
</profile>
</profiles>
그런 식으로,
mvn clean
"foo"를 기본 매개 변수로 사용합니다. 재정의해야하는 경우mvn -P notdefault -DmyProperty=something
참고 URL : https://stackoverflow.com/questions/899274/setting-default-values-for-custom-maven-2-properties
'IT TIP' 카테고리의 다른 글
VectorDrawables srcCompat를 사용하는 Android Selector Drawable (0) | 2020.12.03 |
---|---|
거친 그레이 스케일 알고리즘 사용에 문제가 있습니까? (0) | 2020.12.03 |
ArrayList를 새 크기로 축소 (0) | 2020.12.03 |
C에서 문자열 상수를 어떻게 선언합니까? (0) | 2020.12.03 |
일부 Python 코드의 형식을 올바르게 지정하려면 어떻게해야합니까? (0) | 2020.12.03 |