如何在Maven中创建受密码保护的zip

时间:2019-04-15 14:52:01

标签: maven zip

当前,我正在使用maven-assembly-plugin通过“ mvn clean package”创建一个zip文件。整个过程工作正常,该zip文件包含我需要的所有内容,但是有一个新要求要求创建受密码保护的zip文件。我用谷歌搜索,但没有发现任何用处;有需要执行此任务的人吗?

当前插件的定义方式如下:

<build>
...
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
            <execution>
                <id>create-distribution</id>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
                <configuration>
                    <descriptors>
                        <descriptor>assembly/zip.xml</descriptor>
                    </descriptors>
                </configuration>
            </execution>
        </executions>
    </plugin>
</build>

和zip.xml是以这种方式定义的:

<?xml version="1.0" encoding="UTF-8"?>
<assembly
  xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
    http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2
      http://maven.apache.org/xsd/assembly-1.1.2.xsd"
>
  <id>zip</id>
  <formats>
    <format>zip</format>
  </formats>
  <fileSets>
    <fileSet>
      <outputDirectory>directory1/</outputDirectory>
      <directory>directory1</directory>
    </fileSet>

    <fileSet>
      <outputDirectory>/</outputDirectory>
      <includes>
        <include>config.properties</include>
      </includes>
    </fileSet>    
  </fileSets>
  <files>
    <file>
    <source>target/data-jar-with-dependencies.jar</source>
    <destName>data-jar-with-dependencies.jar</destName>
    </file>
  </files>

</assembly>

1 个答案:

答案 0 :(得分:0)

您必须使用外部程序再次解压缩和压缩档案。例如7z:

7z e Unprotected.zip 7z a Protected.zip -pPASSWORD UNPROTECTEDFILENAME

如果要将其集成到构建生命周期中,则需要maven exec-plugin在打包阶段之后执行这两个命令。