我不知道这是否可能。这就是我要做的。 我有一些詹金斯管道,它们使用节点js构建VUE.js应用程序。 使用“ nmp run build”命令。此构建的结果是目录名称“ Static”和一个index.html文件。之后,我将这2个文件压缩到file.zip文件中,然后上传到Artifactory,以便稍后将其解压缩下载并放置到docker文件中以生成映像,然后再创建一个Azure容器(ACI)。
我现在想对那些已经使用其他应用程序完成的zip实施一些版本控制,但是在Java中使用maven + POM + Maven + Metadata + Plugin + jenkins +人工制品,其中有2个工作。使用maven进行构建并推送到工件的file.war的1个作业,以及使用“使用参数构建”选项从工件中选择file.war的其他作业。
即使不是Java应用程序here,我也读过一些关于也使用maven创建zip文件的知识,并且对node js也是如此。
那么,用maven压缩目录和文件是否有可能,甚至认为它们不是Java应用程序,并包含作业编号以对该zip文件进行版本化并推送到工件中,是否可行?与我使用Java和maven进行版本控制的方法相同,但是对于jenkins管道中的VUE.js应用程序,该应用程序将zip和内部版本号一起推送到工件中,然后使用“ build with parameters”选项选择我想要的zip? 谢谢!
答案 0 :(得分:0)
您提到,您已经在使用npm来构建Vue应用程序。有一些npm库可供压缩。您可以例如做这样的事情:
const fs = require('fs');
const archiver = require('archiver');
const archive = archiver('zip', {
zlib: { level: 9 }
});
const filename = "./output.zip";
const fileOutput = fs.createWriteStream(filename);
fileOutput.on('close', function() {
console.info('ZIP file created. ' + archive.pointer() + ' total Bytes.');
});
archive.pipe(fileOutput);
archive.directory('./input-directory', '/');
archive.on('error', function(error) {
throw error;
});
archive.finalize();
这假定构建过程的输出存储在文件系统上的dist
文件夹中,并且您有权访问文件系统。
官方文档中有archiver
的更多示例:https://github.com/archiverjs/node-archiver
答案 1 :(得分:0)
您可以使用maven-assembly-plugin和程序集描述符来构建一个zip文件。
程序集描述符进入项目的src/assembly
目录,该目录的名称类似于my-zip-format.xml
。您需要自定义内容以包括所需的文件,但这是个主意。
<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>my-zip</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>path/to/input/dir</directory>
<outputDirectory>name-of-output-dir</outputDirectory>
<directoryMode>0750</directoryMode>
<fileMode>0640</fileMode>
<lineEnding>unix</lineEnding>
</fileSet>
</fileSets>
</assembly>
然后,告诉POM使用该程序集:
....
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version><pluginVersionHere></version>
<executions>
<execution>
<id>make-zip</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/assembly/my-zip-format.xml</descriptor>
</descriptors>
</configuration>
...
文档更加详细,并且还有很多关于程序集插件细微差别的问题/答案。