Maven在其他所有内容完成后重命名文件

时间:2013-12-23 10:27:27

标签: maven ant

我有一个项目,我需要在其他所有内容完成后重新命名由Maven Assembly Plugin生成的最终输出文件(在编译/构建/汇编过程中)。

Maven Assembly Plugin根据项目名称生成最终.zip文件,我需要将其完全重命名为final-version.oxt。我正在尝试使用maven-antrun-plugin重命名它,正如其他类似问题所指出的那样,但没有运气(我以前从未使用过Maven或Ant,所以也许我错过了一些东西)。

这是项目<build>的{​​{1}}部分。重命名部分似乎完全被忽略,因为我的pom.xml文件夹中没有生成文件。

home

3 个答案:

答案 0 :(得分:14)

一些修改使其有效,可能phase错了,但使用<phase>install</phase>似乎可以使其有效:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
                <execution>
                    <phase>install</phase>

                    <configuration>
                        <target>
                            <copy file="${project.build.directory}/libreofficeplugin-ooo.zip" tofile="${project.build.directory}/final-version.oxt" />
                        </target>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

答案 1 :(得分:8)

这个问题已有近一年的历史了,但如果其他人遇到类似的问题,这里有另一种解决方案。

如果您正在寻找一种更为普遍的方式,可以使用

 <plugin>
    <groupId>com.coderplus.maven.plugins</groupId>
    <artifactId>copy-rename-maven-plugin</artifactId>
    <version>1.0.1</version>
    <executions>
      <execution>
        <id>rename-file</id>
        <phase>install</phase>
        <goals>
          <goal>rename</goal>
        </goals>
        <configuration>
          <sourceFile>${project.build.outputDirectory}/libreofficeplugin-ooo.zip</sourceFile>
          <destinationFile>${project.build.outputDirectory}/final-version.oxt</destinationFile>
        </configuration>
      </execution>
    </executions>
  </plugin>

如果您想要复制而不是重命名,请使用copy目标而不是rename目标。

答案 2 :(得分:-1)

您无需使用antrun重命名输出文件。只需使用程序集插件的标签finalName重命名输出文件。

<?xml version="1.0" encoding="UTF-8"?>
<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-assembly-plugin</artifactId>
   <version>2.4</version>
   <executions>
      <execution>
         <id>assembly</id>
         <phase>package</phase>
         <goals>
            <goal>attached</goal>
         </goals>
         <configuration>
            <archive>
               <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
            </archive>
            <descriptors>
               <descriptor>src/main/assembly/ooo-jar.xml</descriptor>
               <descriptor>src/main/assembly/ooo.xml</descriptor>
            </descriptors>
            <finalName>final-version.oxt</finalName>
         </configuration>
      </execution>
   </executions>
</plugin>