заархивируйте файл с maven в каталог приложения Java - PullRequest
0 голосов
/ 20 ноября 2018

Я не знаю, возможно ли это.Это то, что я хочу сделать.У меня есть несколько конвейеров jenkins, которые создают приложение VUE.js, используя узел js.используя команду «nmp run build».Результатом этой сборки является имя каталога "Static" и файл index.html.После этого я заархивирую эти 2 в файл file.zip, который загружаю в Artifactory, чтобы потом его можно было разархивировать и поместить в файл Docker для создания образа, а затем в контейнер в Azure (ACI).

Я хочу реализовать некоторые версии тех архивов, которые я уже сделал с другими приложениями, но в Java с maven + POM + Maven + метаданные + плагин + jenkins + артефакт, где у меня есть 2 задания.1 задание на сборку с помощью maven и отправка в артефакт файл.war, и другое задание на выбор файла .war из артефакта с параметром «сборка с параметрами».

Я читал кое-что об использовании также maven для создания zip-файла, даже если это не приложение Java здесь и делаю то же самое для узла js.

Итак, это так?с помощью maven можно заархивировать каталог и файл, даже если они не являются Java-приложением и включают номер задания для создания версии этого zip-файла и отправки в артефакт?и maven для управления версиями, но для приложений VUE.js в конвейере jenkins, которые помещают zip вместе с номером сборки в артефакт, а затем используют опцию "build with parameters", чтобы выбрать zip, который я хочу?спасибо!

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Вы можете создать zip-файл, используя maven-assembly-plugin с дескриптором сборки.

Дескриптор сборки находится в каталоге проекта 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>
        ...

Документация входит вгораздо больше подробностей, а также множество SO / вопросов о нюансах плагинов сборки.

0 голосов
/ 21 ноября 2018

Вы упомянули, что вы уже используете 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...