1

我想将单个文件发布到 Nexus repo(部署脚本,sh),为此我正在使用

build-helper-maven-plugin:attach-artifact

Maven Assembly Plugin不同,它没有明确的选项来设置部署文件的行尾。如何使用此插件或其他插件解决任务。

重要提示:我需要将文件部署为 .sh 而不是存档。否则可以切换到Maven Assembly Plugin

4

2 回答 2

2

让我分享最终的解决方案。我希望有一天它会对某人有所帮助...

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>

部署脚本程序集.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>
于 2014-06-24T12:27:54.687 回答
1

maven-assembly-plugin 有一个格式目录,它只是硬盘驱动器上的一个文件夹结构,您可以使用它来将 sh 脚本复制到该文件夹​​并转换 linenendings,然后使用 build-helper-maven-plugin 附加该工件。

于 2014-06-24T21:43:03.283 回答