Выпуск Maven: ошибка при работе с плагином сборки (мультимодульный проект) - PullRequest
2 голосов
/ 20 октября 2011

У меня есть мультимодульный проект Maven. В одном модуле мы создаем 2 ZIP-файла с помощью плагина maven-assembly-plugin. Конфигурация для этого:

    <configuration>
            <finalName>${sample.source.zip.filename}</finalName>
            <appendAssemblyId>false</appendAssemblyId>
            <outputDirectory>${project.build.directory}/zip</outputDirectory>
            <descriptors>                                
                <descriptor>src/main/assembly/sample-source.xml</descriptor>
            </descriptors>
        </configuration>


at the war packaging, we put this 2 zip files into the war files, with the maven-war-plugin

    ...
    <resource>
        <directory>${project.build.directory}/zip</directory>
        <targetPath>client</targetPath>
    </resource>
    ... 

Это нормально. Но на этапе установки maven «копирует» эти zip-файлы в локальный репозиторий с тем же именем !!! (module_name & version_number & .zip) И я не знаю, почему он переименовывает файлы zip !? (zip-файлы нужны во время войны, но не в виде отдельных файлов в хранилище.) Но если maven захочет скопировать его туда, это нормально для меня, но почему переименование ???

кто-нибудь есть идеи? Есть ли способ исключить файлы при установке? Это очень большая проблема, потому что при развертывании maven хотел бы загрузить файлы zip с тем же именем в репозиторий maven, но при втором копировании это не удалось. (потому что есть zip-файлы с тем же именем ....)

1 Ответ

3 голосов
/ 20 октября 2011

Это стандартное поведение для сборочного плагина для присоединения сборок, которые он производит к проекту, чтобы они были установлены и развернуты как артефакты проекта. Если возникает конфликт имен, это потому, что вы не дали двум сборкам разные идентификаторы. Идентификатор сборки используется для построения окончательного имени файла . Это правильный способ разрешения конфликтов имен между сборками.

Чтобы предотвратить присоединение сборки к проекту в качестве артефакта и, таким образом, предотвратить ее установку или развертывание, установите attach = false в конфигурации подключаемого модуля сборки .

...