在尝试创建 maven 构建时,我需要资源源 jar、javadoc jar 和编译类 jar,这可以通过现有插件轻松实现。
但是我确实有 XSD 的src/main/resources/xsd
文件夹,我更喜欢在构建过程中在不同的 jar 中创建它,这可能吗?
我在这里先向您的帮助表示感谢
在尝试创建 maven 构建时,我需要资源源 jar、javadoc jar 和编译类 jar,这可以通过现有插件轻松实现。
但是我确实有 XSD 的src/main/resources/xsd
文件夹,我更喜欢在构建过程中在不同的 jar 中创建它,这可能吗?
我在这里先向您的帮助表示感谢
好吧,MAVEN 本身不支持来自单个pom.xml
. 但是您可以只用 a 创建另一个空项目pom
来创建另一个 jar
codebase
|- pom.xml
|- src
|- xsdJar
|- pom.xml
|- [other stuff]
现在,在xsdJar\pom.xml
,
<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>
另外,在您的 main 中调用上述模块pom.xml
<modules>
<module>xsdJar</module>
</modules>
您可以使用自定义插件或作为程序集向您的 maven 构建添加额外的人工制品。程序集允许您将任何资源组定义为新的工件。这个新的人工制品将成为您现有人工制品的“附件”,就像可以附加源 jar 一样。
创建程序集时,您需要定义一个描述符并将其放在类似的位置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