2011-11-02 14 views
15

Có ai biết làm cách nào tôi có thể tạo tài nguyên như .gitignore là một phần của dự án kết quả không?Plugin nguyên mẫu Maven không cho phép. Tài nguyên trong các tài nguyên mẫu thông qua

  1. tạo nguyên mẫu với nguyên mẫu-tài/.gitignore
  2. mvn cài đặt
  3. mvn archatype: tạo
  4. kết quả dự án không chứa .gitignore

PS. Tôi chắc chắn nó không có ở đó.

+0

Tất cả các giải pháp ở đây, chỉ khắc phục được một nửa vấn đề. Họ nhận được các nguyên mẫu được xây dựng, với '.gitignore': nhưng làm thế nào để bạn tạo ra với '.gitignore'? – flungo

Trả lời

9

Thêm một mục fileSet-src/main/resources/META-INF/maven/archetype-metadata.xml với một thẻ thư mục rỗng:

<fileSet> 
    <directory></directory> 
    <includes> 
    <include>.gitignore</include> 
    </includes> 
</fileSet> 

này sẽ sao chép các tập tin bao gồm từ src/main/resources/archetype-resources vào thư mục gốc của dự án.

9

Kiểm tra phiên bản trình cắm thêm tài nguyên của bạn bằng cách khởi chạy bản dựng Maven trên gỡ lỗi (với tùy chọn -X). Nếu bạn sử dụng 2.7, there is a regression where .gitignore files are silently ignored.

Trong trường hợp này, bạn sẽ phải sử dụng một cách rõ ràng 2,6 trong pom.xml của bạn:

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <artifactId>maven-resources-plugin</artifactId> 
       <version>2.6</version> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 
0

Alternative cho downgrading maven-resources-plugin là để thi hành phiên bản plexus-utils mà thực sự có một hồi quy:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.7</version> 
    <dependencies> 
     <!-- it's for fixing maven-resources-plugin 2.7 MRESOURCES-190 --> 
     <dependency> 
      <groupId>org.codehaus.plexus</groupId> 
      <artifactId>plexus-utils</artifactId> 
      <!-- this is last 2.x release --> 
      <version>2.1</version> 
     </dependency> 
    </dependencies> 
</plugin> 
+1

Tôi ủng hộ [giải pháp] của vorburger (http://stackoverflow.com/a/37322323/859604) –

12

Giải pháp này cho maven-resources-plugin sắp tới v3.0.0 (chưa được phát hành tại thời điểm đăng bài này; hiện tại vẫn là 2.7) từ https://issues.apache.org/jira/browse/MRESOURCES-190 có vẻ tốt hơn là giữ lại các nâng cấp phiên bản:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-resources-plugin</artifactId> 
     <configuration> 
      <!-- Required so that .gitignore gets included in archetypes; see https://issues.apache.org/jira/browse/MRESOURCES-190 --> 
      <addDefaultExcludes>false</addDefaultExcludes> 
+1

Tôi có thể xác nhận điều này hoạt động bằng cách sử dụng "addDefaultExcludes". Sử dụng nguyên mẫu 2.4 và maven-resources-plugin v.3.0.1 vẫn có cùng một vấn đề. – max

+0

addDefaultExcludes hoạt động tốt như được mô tả ở đây. Cuối cùng! –

0

lỗi vẫn nằm trong plugin maven-archetype-plugin mới nhất 2.4 và maven-resources-plugin 3.0.1.

đây là giải pháp:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-archetype-plugin</artifactId> 
    <version>2.2</version> 
</plugin> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.6</version> 
</plugin> 

và bạn tạo pom.xml bạn nên thêm

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.6</version> 
</plugin> 
+0

[giải pháp] (http://stackoverflow.com/a/37322323/859604) của vorburger tốt hơn vì nó không liên quan đến việc sử dụng các plugin cũ hơn. –

1

Các lỗi có vẻ là vẫn còn hiện diện trong v3.0.1 maven-nguyên mẫu-plugin . Đối với những người không muốn hạ cấp plugin maven-resource. Tôi đã xoay xở để thiết lập một cách giải quyết nhiều hơn hoặc ít xấu xí hơn.

Trước tiên, bạn đổi tên các nguyên mẫu-tài/.gitignore để

__gitignore__ 

sau đó bên trong archetype-metadata.xml thêm

<requiredProperties> 
    <requiredProperty key="gitignore"> 
     <defaultValue>.gitignore</defaultValue> 
    </requiredProperty> 
</requiredProperties> 

<fileSets> 
    <fileSet> 
     <directory></directory> 
     <includes> 
      <include>__gitignore__</include> 
     </includes> 
    </fileSet> 
</fileSets> 

Khi nguyên mẫu được tạo ra maven bây giờ sẽ đầu sao chép các __gitignore__ sau đó thấy __[file]__ và thay thế nó bằng giá trị mặc định ".gitignore"