2009-11-05 31 views
7

Tôi đang thiết lập một dự án đa mô-đun với cấu trúc phẳng, tức là cha mẹ và con nằm trong cùng một thư mục cơ sở. Cha mẹ được định nghĩa làTrẻ em không tìm thấy pom cha mẹ trong cấu trúc maven đa cấu trúc phẳng xây dựng

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>company</groupId> 
    <artifactId>parent</artifactId> 
    <packaging>pom</packaging> 
    <version>1-0-SNAPSHOT</version> 
    <name>child</name> 
    <modules> 
     <module>../child</module> 
    </modules> 
(...) 

trong khi con nó định nghĩa là

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <parent> 
     <groupId>company</groupId> 
     <artifactId>parent</artifactId> 
     <version>1.0-SNAPSHOT</version> 
</parent> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>company</groupId> 
<artifactId>child/artifactId> 
<packaging>war</packaging> 
<version>1.0-SNAPSHOT</version> 
<name>child</name> 
(...) 

(tên Công ty và các dự án obfuscated)

gì xảy ra là các mô-đun (trẻ em) đang phàn nàn rằng nó không thể tìm thấy phụ huynh, nghĩa là:

Reason: Cannot find parent: company:child for project: company:child:war:1.0-SNAPSHOT for project company:child:war:1.0-SNAPSHOT 

Có một giải pháp rõ ràng cho điều này mà tôi đã bỏ lỡ, hoặc là nó bị bệnh nên sử dụng một cấu trúc dự án phẳng?

Chỉnh sửa: Sửa lỗi đánh máy.

+4

vì một số lý do tôi đọc tiêu đề này là "Trẻ em không tìm thấy phụ huynh khiêu dâm" ... lol – Jakub

+0

Tôi phạm sai lầm đó rất nhiều. – mikek

+1

Phụ huynh sử dụng phiên bản '1-0', trong khi đứa trẻ đề cập đến' 1.0' .. (chú ý sự khác biệt giữa dấu gạch ngang và dấu chấm) Hay đây là lỗi đánh máy khác? – Tim

Trả lời

13

Sử dụng các yếu tố <relativePath> như mô tả trong Example 5 của Introduction to the POM:

<project> 
    <parent> 
    <groupId>company</groupId> 
    <artifactId>parent</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <relativePath>.../parent/pom.xml</relativePath> 
    </parent> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>company</groupId> 
    <artifactId>child</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>child</name> 
    ... 
</project> 
+1

Nếu không sử dụng '', Maven giả định rằng cấp độ gốc là một cấp thư mục phía trên con. – hotshot309

+0

Hehe, một câu trả lời hay để bạn truy cập;) –

0

pom con không tham chiếu pom mẹ, nó tham chiếu đến một tạo phẩm khác có tên 'build'. Nó nên đọc:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <parent> 
     <groupId>company</groupId> 
     <artifactId>parent</artifactId> 
     <version>1.0-SNAPSHOT</version> 
</parent> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>company</groupId> 
<artifactId>child</artifactId> 
<packaging>war</packaging> 
<version>1.0-SNAPSHOT</version> 
<name>child</name> 
(...) 
+0

Ah, xin lỗi ... đó chỉ là một typo obfuscation =) Dự án phụ huynh được đặt tên là 'xây dựng' IRL. – mikek

+0

Không vấn đề gì, phiên bản của phụ huynh? Nó được đặt ở 1.0-SNAPSHOT, trong khi đứa trẻ tham khảo một phiên bản của phụ huynh tại 1.7.0-SNAPSHOT. –

+0

Agh ... cùng một câu chuyện. Tôi đã nhìn chằm chằm vào mã này quá lâu. Nếu tôi xây dựng cha mẹ sans con tất cả mọi thứ hoạt động từ sau đó trong (vì cha mẹ là trong repo địa phương của tôi), vì vậy nó không phải là một vấn đề đánh máy. – mikek

2

Phiên bản POM mẹ là 1-0-THÔNG SỐ CHUNG, chứ không phải là 1,0-SNAPSHOT.

+0

Xin chào, câu hỏi này đã được trả lời trong một thời gian dài (Và câu trả lời được chấp nhận giống như bạn). Bạn nên nỗ lực không trả lời và thử mang một cái gì đó mới đến cuộc trò chuyện. Chúc may mắn! –

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