Maven: выпуск одного файла, установка окончаний строк

Я хотел бы выпустить один файл в репозиторий Nexus (сценарий развертывания, sh), и для этого я использую

build-helper-maven-plugin:attach-artifact

В отличие от Maven Assembly Plugin, он не имеет явной опции для установки конца строки развернутого файла. Как я могу решить задачу, используя этот или другой плагин.

Важно: мне нужен файл, развернутый как.sh, а не как архив. В противном случае возможно переключиться на Maven Assembly Plugin.

2 ответа

Решение

Плагин maven-assembly-plugin имеет формат dir, который представляет собой просто структуру папок на жестком диске, которую вы можете использовать для копирования сценария sh в эту папку, преобразования ссылок и использования build-helper-maven-plugin для последующего присоединения этого артефакта.

Позвольте мне поделиться окончательным решением. Я надеюсь, что это поможет кому-то однажды...

pom.xml

<build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <descriptors>
                        <descriptor>deploy-script-assembly.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>deploy-script-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.9</version>
                <executions>
                    <execution>
                        <id>attach-artifacts</id>
                        <phase>package</phase>
                        <goals>
                            <goal>attach-artifact</goal>
                        </goals>
                        <configuration>
                            <artifacts>
                                <artifact>
                                    <file>${build.directory}/${project.artifactId}-${project.version}-single/deploy-script.sh</file>
                                    <type>sh</type>
                                </artifact>
                            </artifacts>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
...
</plugins>
</build>

развертывания-скриптов assembly.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>single</id>

    <formats>
        <format>dir</format>
    </formats>

    <includeBaseDirectory>false</includeBaseDirectory>

    <files>
        <file>
            <source>deploy-script.sh</source>
            <outputDirectory>/</outputDirectory>
            <lineEnding>unix</lineEnding>
        </file>
    </files>

</assembly>
Другие вопросы по тегам