2012-02-16 27 views
10

Tôi có dự án đa mô-đun Maven với cấu trúc như vậy:tính hồ sơ Maven không "trọng"

mẹ-pom-dự án

- module1

- module2

Tại dự án mẹ-pom, tôi có pom.xml đó

<modules> 
     <module>module1</module> 
    </modules> 
... 
    <profiles> 
     <profile> 
      <id>local</id> 
      <properties> 
       <prop>local_prop</prop> 
      </properties> 
     </profile> 
     <profile> 
      <id>test</id> 
      <modules> 
       <module>module2</module> 
      </modules> 
      <properties> 
       <prop>test_prop</prop> 
      </properties> 
     </profile> 
    </profiles> 

Tại tất cả pom.xml file tôi có thẻ như:

<build> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
     <resource> 
      <directory>src/test/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
    </resources> 
</build> 

Tại module1 và module2 trong nguồn thư mục Tôi có thuộc tính tập tin với nội dung như:

prop=${prop} 

Vấn đề là sau khi

mvn clean install

hoặc

mvn clean install -Ptest

hoặc thậm chí

mvn clean install thử nghiệm -P

tôi nhận được

prop = local_prop

Nếu tôi lý lịch thành viên thử nghiệm cho xây dựng module2 cũng đang được xây dựng, nhưng các thuộc tính được sử dụng từ hồ sơ địa phương. Tôi sử dụng Maven 3.0.3. Có ai có ý tưởng nào không?

+1

Bạn có chắc chắn rằng bạn không xác định thuộc tính bên ngoài bất kỳ nút tiểu sử nào không? – bugske

+0

Trong thực tế, tôi nghĩ rằng bạn có thể cố gắng xác định thuộc tính bên ngoài bất kỳ nút hồ sơ nào có giá trị rỗng. -> bugske

+0

2 bugske Có - tôi hãy kiểm tra kỹ. Và tôi thử ý tưởng thứ hai của bạn - không có gì thay đổi. – Nazar

Trả lời

1

Tôi giải quyết sự cố khi gỡ cài đặt plugin maven hiện tại cho nhật thực và sử dụng một trình cắm khác. Bây giờ tôi sử dụng những này: - Maven tích hợp: http://m2eclipse.sonatype.org/sites/m2e - Maven Integration cho WTP: http://m2eclipse.sonatype.org/sites/m2e-extras/

sớm tôi đã sử dụng này một http://download.eclipse.org/technology/m2e/releases/. Tôi không thể giải thích hành vi này nhưng có thể một số cấu hình đã bị thay đổi bởi plugin.

+0

Lạ ... Âm thanh như một lỗi khác trong plugin m2 ... (liên kết thứ ba của bạn bị hỏng) – Yanflea

+0

sử dụng url này trong Eclipse (Trợ giúp-> Cài đặt Phần mềm Mới) – Nazar

+1

(Tôi là người dùng IntelliJ). oh ok, tôi nên đọc nó lâu hơn một chút;) ("Đây là một kho lưu trữ Eclipse Update/p2, bạn phải truy cập nó từ Eclipse") ... Xin lỗi. – Yanflea

0

Tôi không thể tìm ra cách con quạ có thể giải quyết tài sản của bạn nếu bạn không chỉ định bất kỳ hồ sơ nào. Vì vậy, để xem những gì thực sự ở đó, tôi đã cố gắng bản thân mình, sau chính xác các lược đồ bạn mô tả và ... Tôi đã không gặp vấn đề bạn có. Trong trường hợp của bạn, nó thực sự cư xử như thể tài sản đã được định nghĩa bên ngoài profile -as bugske được đề xuất. Điều gì đã xảy ra nếu bạn bình luận tạm thời cả hai cấu hình?

+0

tôi nhận được prop = $ {prop} – Nazar

+0

... như mong đợi. – Yanflea

4

Thêm một ${basedir} trước bạ tài nguyên của bạn:

<directory>${basedir}/src/main/resources</directory>

này cần khắc phục vấn đề của bạn.Lời giải thích của tôi sẽ là trong một dự án đa mô-đun, nó không chọn đúng đường dẫn (trong mô-đun con), nếu bạn đang xây dựng từ cấp cao nhất. Vì vậy, khi cố gắng lọc, nó áp dụng nó vào một thư mục khác (trình tổng hợp cấp thực tế), thay vì con.

Tôi hy vọng điều đó sẽ hữu ích.

+1

Sau một thời gian dài đào sâu vào điều này, điều đó đã khắc phục được sự cố của tôi! Cảm ơn! – jonashackt

0

Mặc dù cũ tôi đã có cùng một vấn đề và không tìm thấy giải pháp ở đây. Đối với tôi vấn đề là Eclipse mà tôi sử dụng song song với mvn trên dòng lệnh. Eclipse ngay lập tức được gọi là quy trình tài nguyên sau khi tôi đã làm như vậy trên dòng lệnh.

Vì vậy, giải pháp là chọn cấu hình trong Eclipse (Project-> Maven-> Chọn Maven Profiles).

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