Maven:发布单个文件,设置行结尾

时间:2014-06-24 11:20:57

标签: maven nexus maven-assembly-plugin line-endings build-helper-maven-plugin

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

build-helper-maven-plugin:attach-artifact

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

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

2 个答案:

答案 0 :(得分:1)

让我分享最终解决方案。我希望有一天能帮助别人...

<强>的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>

答案 1 :(得分:1)

maven-assembly-plugin有一个格式dir,它只是硬盘上的一个文件夹结构,你可以用它将sh脚本复制到该文件夹​​并转换换行符并使用build-helper-maven-plugin来附加之后的神器。