Maven : jar 포장에만 outputDirectory를 지정 하시겠습니까?
jar 패키징에만 outputDirectory를 지정해야합니까?
http://maven.apache.org/plugins/maven-jar-plugin/jar-mojo.html 모든 매개 변수가 표시 명령 줄 또는 pom.xml에서 어떻게 접근 수 있습니까?
명령 줄에서
-DoutputDirectory=<path>
그리고 pom.xml에서
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<outputDirectory>/my/path</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
매개 변수 매개 변수
명령 줄 사용 정보 :
매개 변수 문서 는 매개 변수가 특성 값 ${project.build.directory}
(대상 폴더를 참조하는 특성 )으로 초기화됨을 지정합니다.
이것이 의미하는 바는 다음과 가변적입니다.
CLI에서 직접 실행하려는 모조의 경우 해당 요청 변수는 일반적으로
<configuration/>
POM 의 섹션 대신 시스템 속성을 통해 구성 할 수있는 수단을 제공합니다 . 매개 변수 설치에 대한 문서에는 시스템이 있습니다. 위의 mojo에서 사용되는 변수 url은 자주 사용되어 있습니다. 즉${query.url}
, 해당 값은query.url
같이 시스템 속성에 의해 지정 될 수 있습니다 .
mvn myquery:query -Dquery.url=http://maven.apache.org
참고 :
$ {project.build.directory} 구성
그러나 ${project.build.directory}
, 프로퍼티 아니다 시스템 그것은 숙박 시설의 의 프로젝트 의 object-입니다.Build
명령 줄에서 직접 접근 할 수 있습니다. pom.xml에 자리 표시 할 수는 없지만 약간의 트릭으로 추가 할 수 있습니다.
<build>
<directory>${dir}</directory>
</build>
이제 출력 디렉토리는 명령 줄의 속성을 통해 설정됩니다 (사용 -Ddir=somedirectory
). 단점 : 항상 -Ddir
명령 줄 에서 매개 변수 를 사용합니다 .
프로필 사용
하지만 여기에도 도움이됩니다. 디렉토리를 구성하려는 프로필을 사용하십시오.
<profiles>
<profile>
<id>conf</id>
<build>
<directory>${dir}</directory>
</build>
</profile>
</profiles>
이제 당신은 할 수 있습니다
# everything goes in someOtherDir instead of target
mvn clean install -Pconf -Ddir=someOtherDir
또는 평범한
# everything goes in target
mvn clean install
Jar 플러그인 구성
이제 대상에서 모든 것을 리디렉션하지 않고 명령 줄에서 jar outputDirectory를 변경하려는 경우 프로필을 수정하여 명령 줄 속성에서 구성합니다.
<profiles>
<profile>
<id>conf</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<outputDirectory>${dir}</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
사용법은 위와 동일합니다.
# everything goes in someOtherDir instead of target
mvn clean install -Pconf -Ddir=someOtherDir
@Sean Patrick Floyd에게 감사드립니다.
프로필을 만들고 mvn
always by -P
switch를 사용하는 대신 $ {dir} 속성의 기본값을 만드는 다른 방법을 사용하고 싶습니다.
${dir}
의 기본값을 다음과 같이 정의하십시오.${project.build.directory}
<properties>
<dir>${project.build.directory}</dir>
</properties>
@Sean Patrick Floyd와 동일하게 outputDirectory를 설정합니다.
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<outputDirectory>${dir}</outputDirectory>
</configuration>
</plugin>
</plugins>
이제 당신은 할 수 있습니다
# everything goes in someOtherDir instead of target
mvn clean install -Ddir=someOtherDir
또는 평범한
# everything goes in target
mvn clean install
종속성 jar도 대상 폴더에 복사하려면 maven-dependency-plugin을 사용하십시오.
<project>
...
...
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
'ProgramingTip' 카테고리의 다른 글
document.location.href와 document.location의 차이점은 무엇입니까? (0) | 2021.01.06 |
---|---|
pthread에서 순위 우선 순위를 높이는 방법은 무엇입니까? (0) | 2021.01.06 |
기본 클래스에서 하위 클래스 이름을 찾는 방법은 무엇입니까? (0) | 2021.01.06 |
Android NDK의 엔디안 (0) | 2021.01.06 |
클로저 : 왜 그렇게 유용할까요? (0) | 2021.01.05 |