2013-05-14 39 views
6

tôi đang sử dụng maven-lắp ráp plugin để tạo zip, làm thế nào tôi có thể đổi tên một số tác phẩm trong khi nén sử dụng plugin cùng ??đặt lại tên file trong khi tạo file zip qua Maven-lắp ráp Plugin

Cập nhật:

Đây là cấu hình trong 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> 

Đây là 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> 

tôi đang nhận jar đó và giải nén nó, sau đó đổi tên file và nén lại. Cảm ơn

+0

Bạn có thể hiển thị tệp pom và bộ mô tả mà bạn đang sử dụng không? – khmarbaise

+0

Xin chào, cảm ơn bạn đã trả lời. Tôi đã cập nhật. –

+0

Bạn có chắc rằng mô tả của bạn là chính xác, gây ra nó có vẻ sai (dependencySet) mà không có dependencySets. Bạn không có cảnh báo? Hơn nữa, tại sao bạn không sử dụng phiên bản cập nhật của plugin maven-assembly (2.4). – khmarbaise

Trả lời

9

Bạn có thể sử dụng

<outputFileNameMapping>...</outputFileNameMapping> 

mà đặt mô hình bản đồ cho tất cả phụ thuộc bao gồm trong lắp ráp này sử dụng

giá trị

mặc định:

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

Cũng hoạt động bên trong các phần tử dependencySet, nếu chỉ một số phụ thuộc sẽ được đổi tên. –

2

tôi phải đối mặt với cùng một vấn đề, tôi cần phải sử dụng giải nén với đổi tên một số tệp và làm giải pháp, chúng tôi có thể sử dụng hai lần thực hiện plugin maven-assembly.

Trong lần thực hiện đầu tiên, chúng tôi sẽ sử dụng định dạng dir thay vì một định dạng lưu trữ và chuẩn bị nội dung tệp và kết quả là sẽ có thư mục với tất cả các tệp cần thiết.

Trong thi thứ hai chúng ta sẽ sử dụng thư mục khỏi án tử hình trước đó như nguồn trong fileSets với files và chúng tôi sẽ có khả năng để đổi tên bất kỳ tập tin sử dụng files.file.destName, và như là định dạng để thực hiện thứ hai chúng ta có thể sử dụng định dạng lưu trữ như zip để tạo ra lưu trữ thức.

1

Trả lời bài đăng cũ cho hậu thế ... và lần sau tôi hỏi Google và được gửi ở đây.

việc sửa đổi tên từng là một cơn đau ở Maven, plugin này làm những gì là nói trên tin:

copy-rename-maven-plugin

(có sẵn trong Maven central)

Dễ sử dụng:

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

Lưu ý: mục tiêu rename sẽ di chuyển (các) tệp trong mục tiêu/

Các vấn đề liên quan