2015-03-26 16 views
7

Tôi có một Maven RPM Plugin lập bản đồ như sau:Phần ánh xạ tùy chọn trong plugin Maven RPM?

<mapping> 
    <directory>/etc/myconfig</directory> 
    <configuration>true</configuration> 
    <sources> 
    <source> 
     <location>${project.build.directory}</location> 
     <includes> 
     <include>*.conf</include> 
     </includes> 
    </source> 
    </sources> 
</mapping> 

Tuy nhiên, tùy thuộc vào quá trình đóng gói, có thể có zero file conf để đưa vào/etc. Khi điều này xảy ra, RPM plugin cho biết:

[ERROR] Failed to execute goal org.codehaus.mojo:rpm-maven-plugin:2.1.2:rpm (default) on project clients: 
Unable to copy files for packaging: You must set at least one file. -> [Help 1] 

Có cách nào để có phần ánh xạ hài lòng với không có tệp không?

Trả lời

2

Điều tốt nhất tôi có thể thực hiện là bỏ qua thẻ <includes>, thẻ này lấy mọi thứ từ những gì được chỉ định trong <location>.

location

Các tập tin hoặc thư mục bao gồm. Nếu một thư mục được chỉ định, tất cả các tệp và thư mục con cũng được bao gồm.

Bạn sẽ cần phải càng cụ thể càng tốt trong đường dẫn cho các ánh xạ này không bao gồm các mẫu được chỉ định. Tôi đã thêm confs vào vị trí bên dưới để tránh kéo mọi thứ khác vào project.build.directory.

Ngay cả khi không có tệp nào được chọn, <directory> sẽ vẫn được tạo.

<mapping> 
    <directory>/etc/myconfig</directory> 
    <configuration>true</configuration> 
    <sources> 
    <source> 
     <location>${project.build.directory}/confs</location> 
    </source> 
    </sources> 
</mapping> 
Các vấn đề liên quan