build-helper-maven-plugin 사용

8962 단어 plugin
build-helper-maven-plugin 플러그인의 주요 역할은 추가 원본 경로와 자원 경로를 지정하는 것이다.총 15개의 Goal:
build-helper:add-source  Add more source directories to the POM.
build-helper:add-test-source  Add test source directories to the POM.
build-helper:add-resource  Add more resource directories to the POM.
build-helper:add-test-resource  Add test resource directories to the POM.
build-helper:attach-artifact  Attach additional artifacts to be installed and deployed.
build-helper:maven-version  Set a property containing the current version of maven.
build-helper:parse-version  Set properties containing the parsed components of a version string.
build-helper:regex-property  Sets a property by applying a regex replacement rule to a supplied value.
build-helper:regex-properties  Sets a property by applying a regex replacement rule to a supplied value.
build-helper:released-version  Resolve the latest released version of this project.
build-helper:remove-project-artifact  Remove project's artifacts from local repository.
build-helper:reserve-network-port  Reserve a list of random and unused network ports.
build-helper:local-ip  Retrieve current host IP address.
build-helper:cpu-count  Retrieve number of available CPU.
build-helper:timestamp-property  Sets a property based on the current date and time.
여기에attach-artifact라는 goal을 중점적으로 소개하는데 그 역할은artifact를 설치하거나 배치할 때 다른 자원이나 파일을 추가하거나 배치하는 것이다.
 
build-helper-maven-plugin을 사용하려면 먼저 플러그인 설명을 추가합니다.
  <build>
  	<plugins>
  		<plugin>
  			<groupId>org.codehaus.mojo</groupId>
  			<artifactId>build-helper-maven-plugin</artifactId>
  			<version>1.9</version>
  		</plugin>
  	</plugins>
  </build>

그리고 다른 플러그인과 마찬가지로 그것의phase와goal을 정의합니다.
 
attach-artifact 기본값은 package입니다.
	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<version>1.8</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>attach-artifact</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

나머지는configuratino 설정입니다.
 
attach-artifact에서 사용할 수 있는 구성은 다음과 같습니다.
필수
Name Type Since Description
artifacts
Artifact[]
1.0
Attach an array of artifacts to the project.
선택 사항
Name Type Since Description
basedir
String
1.5
This project's base directory.Default value is: ${basedir}.
runOnlyAtExecutionRoot
boolean
1.5
This will cause the execution to be run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.Default value is: false.User property is: buildhelper.runOnlyAtExecutionRoot.
skipAttach
boolean
1.6
This allows to skip the attach execution in case it is known that the corresponding file does not exists. For exemple, when the previous ant-run task is skipped with a unless.Default value is: false.User property is: buildhelper.skipAttach.
여기는artifacts만 필수입니다.artifacts에 대한 설명은 다음과 같습니다.
artifacts:
Attach an array of artifacts to the project.
Type: org.codehaus.mojo.buildhelper.Artifact[]
Since: 1.0
Required: Yes
그중의 모든artifact는 형식 org입니다.codehaus.mojo.buildhelper.Artifact.Artifact Doc에 따르면 구성 가능한 항목은
  • file: 첨부할 파일 지정
  • type: 파일 유형 지정
  • classifier: 지정한 파일의 부속 정보
  • 마지막으로 생성된 파일 이름은 다음과 같습니다.
    ${artifactId}-${version}-${classifier}.${type}

    예를 들어, 설치 또는 배포할 때 etc/a.properties 파일을 첨부하려면 다음과 같이 구성됩니다.
    				<configuration>
    					<artifacts>
    						<artifact>
    							<file>etc/a.properties</file>
    							<type>properties</type>
    							<classifier>org.liugang.settings</classifier>
    						</artifact>
    					</artifacts>
    				</configuration>

    현재pom의groupId/artifactId/version을 org로 가정합니다.liugang.maven.resources/BuilderHelperTester/0.0.1-SNAPSHOT
     
    mvn clean install을 실행한 후 로컬 Maven 라이브러리의 디렉토리로 이동합니다.
    ${M2Repository}\org\liugang\maven\resources\BuilderHelperTester\0.0.1-SNAPSHOT

    다음에 대응하는jar 파일을 생성하는 것 외에 파일도 생성할 수 있습니다.
    BuilderHelperTester-0.0.1-SNAPSHOT-org.liugang.settings.properties

    이 파일의 내용은 etc/a.properties의 내용입니다.
    그리고 이properties 파일을 인용하려면 구체적인 type과classifier를 지정해야 합니다. 예를 들어:
     
    			<groupId>org.liugang.maven.resources</groupId>
    			<artifactId>BuilderHelperTester</artifactId>
    			<version>0.0.1-SNAPSHOT</version>
    		 	<type>properties</type> 
    		 	<classifier>org.liugang.settings</classifier> 

    karaf에서 이러한 방식으로 버블의 추가 설정을 읽을 수 있습니다.
    <configfile finalname="/etc/org.liugang.settings.cfg">mvn:org.liugang.maven.resources/BuilderHelperTester/0.0.1-SNAPSHOT/properties/org.liugang.settings</configfile> 

    여기서 경로의 형식은 다음과 같습니다.
    mvn:${groupId}/${artifactId}/${version}/${type}/${classifier}

    좋은 웹페이지 즐겨찾기