Maven 2 使用Maven创建包含可执行jar和依赖项的zip文件

Maven 2 使用Maven创建包含可执行jar和依赖项的zip文件,maven-2,maven-assembly-plugin,Maven 2,Maven Assembly Plugin,我正在尝试为我的项目创建一个可分发的zip,其中包含几个配置文件和目录,以及我的项目的可执行jar。在Maven程序集插件中,我发现了如何使可执行jar具有完全依赖性。但是,我还没有弄清楚如何在制作完jar后在jar周围创建zip文件。理想情况下,我希望将jar移动到一个已经有正确文件和子目录的目录中,然后立即压缩整个内容。有没有办法做到这一点 编辑: 我现在有了罐子,还有一个基本的拉链。我的程序集文件如下所示: <assembly> <id>financials-

我正在尝试为我的项目创建一个可分发的zip,其中包含几个配置文件和目录,以及我的项目的可执行jar。在Maven程序集插件中,我发现了如何使可执行jar具有完全依赖性。但是,我还没有弄清楚如何在制作完jar后在jar周围创建zip文件。理想情况下,我希望将jar移动到一个已经有正确文件和子目录的目录中,然后立即压缩整个内容。有没有办法做到这一点

编辑:

我现在有了罐子,还有一个基本的拉链。我的程序集文件如下所示:

<assembly>
   <id>financials-import-server</id>
   <formats>
      <format>zip</format>
   </formats>
   <dependencySets>
      <dependencySet>
      </dependencySet>
   </dependencySets>
    <files>
       <file>
          <source>target/import-server-1.0.0-SNAPSHOT.jar</source>
          <destName>service.jar</destName>
          <outputDirectory>/</outputDirectory>
       </file>
    </files>
</assembly>

财务导入服务器
拉链
target/import-server-1.0.0-SNAPSHOT.jar
service.jar
/
包括我需要的其他文件,如配置文件或shell脚本,我感觉很舒服。我还有几个问题要问。如何在zip中创建空目录?另外,如何更改生成的文件的名称


谢谢你的帮助

首先,使用Maven JAR插件创建一个

然后,将程序集配置为包含所需的所有文件(最终您可以添加将启动应用程序的
run.bat
/
run.sh
文件),以及

最后,将程序集创建绑定到
pom.xml
中的包目标:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.2-beta-5</version>
      <configuration>
        <descriptors>
          <descriptor>/path/to/my-assembly.xml</descriptor>
        </descriptors>
      </configuration>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
        </execution>
      </executions>
      ...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2-beta-4</version>
            <configuration>
                <descriptors>
                    <descriptor>my-assembly.xml</descriptor>
                </descriptors>
                <finalName>TheName</finalName>
对于创建的ZIP文件的名称,可以在
pom.xml
中指定:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.2-beta-5</version>
      <configuration>
        <descriptors>
          <descriptor>/path/to/my-assembly.xml</descriptor>
        </descriptors>
      </configuration>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
        </execution>
      </executions>
      ...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2-beta-4</version>
            <configuration>
                <descriptors>
                    <descriptor>my-assembly.xml</descriptor>
                </descriptors>
                <finalName>TheName</finalName>

org.apache.maven.plugins
maven汇编插件
2.2-β-4
my-assembly.xml
名字

如果我的回答正确,程序集将使用此名称,添加
assembly.xml
文件中定义的
ID
,并使用与指定格式相适应的前缀。

谢谢,我基于此做了一些工作,并取得了一些进展。然后我又被卡住了。有什么建议吗?谢谢。你的回答非常棒,非常有用。