2010-06-09 9 views
12

(còn được đăng trên maven-users)Maven 2 <resources> thừa kế (mẹ -> Dự án trẻ em)

Tự hỏi nếu có ai có thể làm sáng tỏ về thừa kế của các yếu tố trong pom.xml như liên quan đến tài nguyên xử lý và WAR cắm vào.

Tài liệu cho pom [1] có các tài nguyên được liệt kê trong "Các phần tử trong POM được hợp nhất". Một số thử nghiệm trên poms địa phương của tôi chống lại maven 2.2.1 không xuất hiện để thể hiện hành vi đó. Những gì tôi thấy là nó trông giống như được thừa kế bởi các dự án con (trong một mô-đun đa xây dựng), nhưng nếu bất kỳ dự án nào có khối riêng của nó, nó sẽ thay thế cha mẹ, chứ không phải sáp nhập. Đúng không?

Ví dụ:

parent-pom.xml 
| 
|-> child-pom.xml 

Các công trình sau đây như tôi mong đợi, với các tập tin trong dev không bao gồm trong một WAR thức.

mẹ-pom.xml

<resources> 
    <resource> 
     <directory>src/main/resources</directory> 
     <excludes> 
      <exclude>${dev-config.path}</exclude> 
     </excludes> 
    </resource> 
<resources> 

trẻ em pom.xml

<resources> 
    <resource> 
     <directory>src/main/resources</directory> 
     <excludes> 
      <exclude>${dev-config.path}</exclude> 
     </excludes> 
    </resource> 
    <resource> 
     <directory>src/main/rules</directory> 
    </resource> 
    <resource> 
     <directory>src/test/rules</directory> 
    </resource> 
</resources> 

Sự thay đổi sau đây cho đứa trẻ (loại bỏ bất kỳ tuyên bố cho src/main/nguồn lực) dường như gây ra src/chính/tài nguyên không được xem xét trong quá trình tài nguyên, không kế thừa từ cha mẹ như tôi mong đợi.

trẻ em pom.xml

<resources> 
    <resource> 
     <directory>src/main/rules</directory> 
    </resource> 
    <resource> 
     <directory>src/test/rules</directory> 
    </resource> 
</resources> 

[1] http://maven.apache.org/guides/introduction/introduction-to-the-pom.html s

Trả lời

10

Trên thực tế, đó là những gì các tài liệu nói. Nhưng tôi xác nhận rằng Maven thừa kế ghi đè tài nguyên thay vì thêm vào chúng. Điều này thực sự được ghi lại trong MNG-2751 và gián tiếp trong MNG-2027, mà bạn có thể muốn gặp phải.

TBH, tôi rất tò mò muốn biết những gì những người maven sẽ nói về điều này (cá nhân tôi hài lòng với hành vi hiện tại, tôi không thực sự muốn poms con bị "ô nhiễm" bởi nhu cầu cụ thể, như loại trừ, trong một hệ thống phân cấp) và thay đổi hành vi này có thể phá vỡ rất nhiều dự án.

+0

Tôi đồng ý với việc thay thế, mặc dù nó thực hiện một số điều như quản lý với hồ sơ ít thanh lịch hơn. Chúng tôi đã làm việc xung quanh bằng cách sử dụng các biến được chuyển vào , nhưng có một chút ô uế – jayshao

+0

@jayshao Lưu ý rằng tôi chỉ thể hiện ý kiến ​​cá nhân, tôi không tuyên bố sẽ giữ sự thật :) Tôi sẽ xem xét thông tin phản hồi về danh sách người dùng maven, tôi rất tò mò. –

+0

@ pascal-thivent vâng, không thấy một phản hồi bay trở lại, nhưng những gì chúng tôi có là khả thi cho bây giờ, mặc dù dễ dàng hơn cho POM trẻ em để phá vỡ hơn tôi muốn – jayshao