通过 maven-assembly-plugin 打包在 jar 中包含 spring xml

Posted

技术标签:

【中文标题】通过 maven-assembly-plugin 打包在 jar 中包含 spring xml【英文标题】:Include spring xml in jar by maven-assembly-plugin packaging 【发布时间】:2013-01-30 07:53:15 【问题描述】:

我正在尝试创建一个可执行 jar 及其所有依赖项以及 spring 的配置 xml 文件。

这里是pom.xml中maven-assembly-plugin的定义:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>service.coucou.Main</mainClass>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <descriptors>
                     <descriptor>assembly.xml</descriptor>
                 </descriptors>
    </configuration>
</plugin>

这是assembly.xml:

<?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
    <id>jar-with-dependencies</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/</outputDirectory>
            <useProjectArtifact>true</useProjectArtifact>
            <unpack>true</unpack>
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <includes>
                <include>/src/main/resources/cxf.xml</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>

我正在尝试在创建的 jar 中包含 /src/main/resources/cxf.xml 文件。但它不包括xml。如何将它包含在 jar 中?

【问题讨论】:

【参考方案1】:

&lt;fileSets/&gt; 替换为:

<fileSet>
  <directory>$basedir/src/main/resources</directory>
  <includes>
    <include>cxf.xml</include>
  </includes>
</fileSet>

【讨论】:

以上是关于通过 maven-assembly-plugin 打包在 jar 中包含 spring xml的主要内容,如果未能解决你的问题,请参考以下文章

maven-assembly-plugin自定义打包

maven-assembly-plugin的使用

无法使用 maven-assembly-plugin 设置最终的 jar 名称

执行 maven-assembly-plugin 后输出中缺少依赖项

java 使用maven-assembly-plugin创建jar存档

使用maven-assembly-plugin打包zipproject