메이븐 빌드를 만들려고 할 때 resluces soures jar, javadoc jar 및 기존 플러그인을 통해 쉽게 얻을 수있는 컴파일 된 클래스 jar가 필요합니다.메이븐 항아리 옵션, 빌드 중에 추가 항아리를 만들 때
하지만 XSD는 src/main/resources/xsd
폴더 아래에 있습니다. 빌드 프로세스 중에 다른 jar 파일로 생성하는 것을 선호합니다. 사전에 도움을
덕분에
메이븐 빌드를 만들려고 할 때 resluces soures jar, javadoc jar 및 기존 플러그인을 통해 쉽게 얻을 수있는 컴파일 된 클래스 jar가 필요합니다.메이븐 항아리 옵션, 빌드 중에 추가 항아리를 만들 때
하지만 XSD는 src/main/resources/xsd
폴더 아래에 있습니다. 빌드 프로세스 중에 다른 jar 파일로 생성하는 것을 선호합니다. 사전에 도움을
덕분에
커스텀 플러그인 또는 assembly을 사용하여 추가로 아티팩트를 메이븐 빌드에 추가 할 수 있습니다. 어셈블리를 사용하면 임의의 리소스 그룹을 새로운 인공물에 정의 할 수 있습니다. 이 새로운 인공물은 항아리를 부착 할 수있는 것과 같은 방법으로 기존의 것에 부착하는 것입니다.
당신이 기술자를 정의하고 src/main/assembly/xsd.xml
같은 모양 기술자처럼 어딘가에 둘 필요가 어셈블리 작성 :
<assembly>
<id>xsd</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>src/main/resources/xsd</directory>
<includes>
<include>*.xsd</include>
</includes>
</fileSet>
</fileSets>
</assembly>
두 번째 부분은 모양 어셈블리 플러그인 구성입니다 다음과 같음 :
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/xsd.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-xsd-zip</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
너에게 이름을 가진 유물 : <artifactid>-<version>-<assemblyid>.zip
음, Maven은 기본적으로 하나의 pom.xml
에서 여러 아티팩트를 지원하지 않습니다. 하지만 당신은 다른 항아리 xsdJar\pom.xml
에서 지금
codebase
|- pom.xml
|- src
|- xsdJar
|- pom.xml
|- [other stuff]
, 또한
<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<includes>
<include>../src/main/resources/xsd/*</include>
</includes>
</configuration>
</plugin>
...
</plugins>
</build>
...
</project>
을 만드는 데에만 pom
와 다른 빈 프로젝트를 만들 수 있습니다, 메인 pom.xml
<modules>
<module>xsdJar</module>
</modules>
에 위에서 언급 한 모듈을 호출