2011-01-05 8 views
9

Tôi đang cố gắng áp dụng maven cho một dự án hiện có đã có cấu trúc thư mục tại chỗ. Tất cả những gì tôi có thể tìm thấy từ câu hỏi trước là như sau.Sử dụng maven sử dụng bố trí thư mục không chuẩn

Maven directory structure

Tuy nhiên, yêu cầu của tôi chi tiết hơn. Xin vui lòng xem dưới đây để biết cấu trúc thư mục:

<root dir> 
    | 
    +--src-java 
    | 
    +--src-properties 
    | 
    +--WEB-INF 

Tôi biết chúng ta có thể có cái gì đó như

<build> 
<sourceDirectory>src-java</sourceDirectory> 
... 
</build> 

Nhưng sourceDirectory là dành cho mã nguồn JAVA mà thôi, nếu tôi không nhầm.

Đối với cấu trúc trên, làm cách nào để khai báo trong pom.xml? Di chuyển thư mục là tùy chọn cuối cùng của tôi ngay bây giờ.

Trả lời

20

Tôi đoán bạn cần có thứ gì đó tương tự như bên dưới.

Xem WEB-INF, tôi cho rằng bạn muốn xây dựng một cuộc chiến. Maven war plugin thực hiện việc này. Bạn sẽ cần phải cấu hình này một chút vì cấu trúc thư mục không chuẩn - ví dụ bạn có thể cần xác định vị trí của web.xml sử dụng thuộc tính webXml. Đây là những tài liệu trong usage page.

<build> 
    <sourceDirectory>src-java</sourceDirectory> 
    ... 
    <resources> 
     <resource> 
     <directory>src-properties</directory> 
     </resource> 
    </resources> 
    ... 
    <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <configuration> 
        <warSourceDirectory>WEB-INF</warSourceDirectory> 
        ... 
       </configuration> 
      </plugin> 
    </plugins> 
</build> 
+1

câu trả lời hay nhất (+1) –

+0

Yap, tôi đồng ý. Đây là câu trả lời hay nhất, và phù hợp với hoàn cảnh của tôi. Tôi cá rằng tôi không phải là người duy nhất có cùng vấn đề. –

1
<resources> 
    <resource> 
    <directory>${project.basedir}/src/main/resources</directory> 
    </resource> 

Từ here.

8

Bạn có thể thay đổi cấu trúc thư mục mặc định được khai báo trong Super POM bằng cách ghi đè chúng trong pom của bạn.

Ví dụ của bạn, ví dụ:

<sourceDirectory>src-java</sourceDirectory> 
<resources> 
    <resource> 
    <directory>src-properties</directory> 
    </resource> 
</resources> 

Maven sẽ sao chép tất cả tài nguyên vào tệp jar. Nếu bạn muốn đưa WEB-INF vào jar, tốt nhất bạn nên chuyển nó vào thư mục tài nguyên được chỉ định. Nếu không, bạn phải sao chép nó bằng của riêng bạn (với các plugin maven) vào thư mục đích - tôi cho là vậy.