2013-05-14 55 views
6

創建zip文件我使用行家組裝插件創建ZIP,我怎麼能重命名一些文件,而使用相同的插件荏苒?重命名文件,同時通過Maven的組裝插件

更新:

這是POM

<profile> 
     <id>D1</id> 
     <activation> 
      <property> 
       <name>D1</name> 
       <value>true</value> 
      </property> 
     </activation> 
     <build> 
      <plugins>    
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-assembly-plugin</artifactId> 
        <version>2.2.2</version> 
        <executions> 
         <execution> 
          <phase>package</phase> 
          <goals> 
           <goal>single</goal> 
          </goals> 
          <configuration> 
           <descriptors> 
            <descriptor>assembly/online-distribution.D1.xml</descriptor> 
           </descriptors> 
           <appendAssemblyId>false</appendAssemblyId> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 

輪廓這是Assembly.xml

<?xml version="1.0" encoding="UTF-8" ?> 
<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"> 
<formats> 
    <format>tar.gz</format> 
</formats> 
<id>online</id> 
<includeBaseDirectory>false</includeBaseDirectory> 
    <dependencySet> 
     <outputDirectory>resources</outputDirectory> 
     <unpack>true</unpack> 
     <includes> 
      <include>${project.groupId}:core-config:jar</include> 
     </includes> 
     <unpackOptions> 
      <includes> 
      <include>coresrv/env-config.D1.properties</include> 
      </includes> 
     </unpackOptions> 
    </dependencySet> 
    <files> 
    <file> 
     <source>${project.groupId}/core-config.jar/coresrv/env-config.D1.properties</source> 
     <outputDirectory>/</outputDirectory> 
     <destName>env-config.properties</destName> 
    </file> 
</files> 
</assembly> 

我得到那個罐子和拆包,然後重命名文件並再次壓縮。 感謝

+0

你能顯示你正在使用的pom文件和描述符嗎? – khmarbaise 2013-05-14 16:18:23

+0

嗨,感謝您的回覆。我已更新。 – 2013-05-15 04:59:44

+0

你確定你的描述符是正確的,導致它看起來不正確(dependencySet)沒有依賴關係集。你沒有警告?此外,爲什麼不使用最新版本的maven-assembly-plugin(2.4)。 – khmarbaise 2013-05-15 09:04:09

回答

9

您可以使用

<outputFileNameMapping>...</outputFileNameMapping> 

其中規定對所有依賴映射模式包括在此組件使用

默認值:

${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}. 
+0

也適用於dependencySet元素,如果只有一些依賴關係應該重命名。 – 2013-08-23 11:30:19

2

我面臨着同樣的問題,我需要使用解壓縮來重命名一些文件,並且作爲解決方案,我們可以使用兩次執行maven-assembly-plugin。

在首次執行期間,我們將使用格式dir而不是歸檔格式之一,並將準備文件內容,並且結果將包含具有所有必需文件的文件夾。

在第二次執行,我們將在fileSets使用文件夾從以前的執行源與files,我們將不得不重新命名使用files.file.destName任何文件的能力,以及作爲第二執行格式,我們可以使用歸檔格式一樣zip創建最終歸檔。

1

回答後人的舊帖子...下一次我問谷歌,併發送到這裏。

重命名曾經是Maven的痛苦,這個插件所做的是在錫說:

copy-rename-maven-plugin

(在Maven central可用)

使用方便:

 <plugin> 
      <groupId>com.coderplus.maven.plugins</groupId> 
      <artifactId>copy-rename-maven-plugin</artifactId> 
      <version>1.0.1</version> 
      <executions> 
       <execution> 
        <id>copy-properties-file</id> 
        <phase>prepare-package</phase> 
        <goals> 
         <goal>copy</goal> 
        </goals> 
        <configuration> 
         <sourceFile>source.props</sourceFile> 
         <destinationFile>destination.properties</destinationFile> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

注意:rename目標會將文件移動到目標位置/