Maven 2 使用maven assembly插件构建jar并将其包含在zip中

Maven 2 使用maven assembly插件构建jar并将其包含在zip中,maven-2,build,maven-assembly-plugin,Maven 2,Build,Maven Assembly Plugin,我有一个mavenized java项目(Maven2),我想将其构建到一个jar中,通过在pom.xml中为jar提供依赖项描述符ref,这非常简单 但是,我还需要在zip中部署我的项目,其中包含一些.exe和.bat文件,这些文件来自调用jar的bin文件夹。(我正在使用,但我认为这与用例无关) 换句话说,我需要一个构建,首先将我的源代码(和依赖项)打包到一个jar中,然后将jar与bin文件夹中的一些附加文件一起放入zip中 我应该在pom.xml和“assembly.xml”中放些什么?

我有一个mavenized java项目(Maven2),我想将其构建到一个jar中,通过在pom.xml中为jar提供依赖项描述符ref,这非常简单

但是,我还需要在zip中部署我的项目,其中包含一些.exe和.bat文件,这些文件来自调用jar的bin文件夹。(我正在使用,但我认为这与用例无关)

换句话说,我需要一个构建,首先将我的源代码(和依赖项)打包到一个jar中,然后将jar与bin文件夹中的一些附加文件一起放入zip中


我应该在pom.xml和“assembly.xml”中放些什么?

Maven assembly插件是实现这一点的正确工具

您必须在pom的“build”部分声明此插件,并在项目根目录下创建另一个配置文件“assembly.xml”。在此文件中,您将定义zip文件的内容

官方网站上描述了配置选项:

下面是这个插件的一个基本配置示例,它应该适合您的需要

POM配置:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <finalName>zipfile</finalName>
        <descriptors>
            <descriptor>${basedir}/assembly.xml</descriptor>
        </descriptors>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

maven汇编插件
拉链
${basedir}/assembly.xml
组装
包裹
单一的
程序集配置:

<assembly>
    <formats>
        <format>zip</format>
    </formats>

    <fileSets>
        <fileSet>
            <directory>to_complete</directory>
            <outputDirectory />
            <includes>
                <include>**/*.jar</include>
                <include>**/*.bat</include>
                <include>**/*.exe</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>

拉链
完成
**/*jar先生
**/*蝙蝠先生
**/*.exe

谢谢你的回答,这是我让它工作所需的关键启动。不过,我确实需要添加另一个描述符,使我的jar能够正常工作。实际上,我刚刚从您提到的站点复制了jar with dependencies descriptor格式,因为使用jar with dependencies descriptor ref封装了zip构建。i、 e.它先构建'sic'jar,然后是zip,然后是with-dependencies.jar,它用第一个(无用的)jar构建zip,但没有第二个,奇怪吧?!