Cách đọc tệp thuộc tính bên ngoài trong Maven


127

Có ai biết cách đọc tệp x.properIES trong Maven không. Tôi biết có nhiều cách để sử dụng lọc tài nguyên để đọc tệp thuộc tính và đặt giá trị từ đó, nhưng tôi muốn có một cách trong tệp pom.xml của mình như:

<properties file="x.properties"> 

</properties>

Có một số cuộc thảo luận về điều này: Thuộc tính bên ngoài của Maven


Nếu bạn chỉ có một vài giá trị và những người dùng khác nhau sẽ cần các giá trị khác nhau, thay vào đó hãy xem xét đưa giá trị vào của bạnsettings.xml .
Raedwald

Câu trả lời:


95

1
Tôi nghĩ đó là những gì tôi đang tìm kiếm Tôi không thể tìm thấy 1.0-SNAPSHOT trong kho lưu trữ của maven nhưng có một bản phát hành: mvnreposective.com/artifact/org.codehaus.mojo/ tựa <phụ thuộc> <groupId> org.codehaus .mojo </ groupId> <artifactId> property-maven-plugin </ artifactId> <version> 1.0-alpha-1 </ version> </
Depencies


Phiên bản hiện tại: <groupId> org.codehaus.mojo </ groupId> <artifactId> property-maven-plugin </ artifactId> <version> 1.0-alpha-2-SNAPSHOT </ version> từ snapshots.reposeective.codehaus.org
Huluvu424242

2
Liên kết trong Câu trả lời đã được cập nhật thành liên kết mới từ @JesseGlick
Jon Adams

1
Tôi gặp vấn đề với plugin này trên Windows. Nếu ai đó cũng có vấn đề, hãy thử kuali thay thế.
fnst

56

Sử dụng plugin thuộc tính Maven được đề xuất, tôi có thể đọc trong tệp buildNumber.properIES mà tôi sử dụng để phiên bản các bản dựng của mình.

  <build>    
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>properties-maven-plugin</artifactId>
        <version>1.0-alpha-1</version>
        <executions>
          <execution>
            <phase>initialize</phase>
            <goals>
              <goal>read-project-properties</goal>
            </goals>
            <configuration>
              <files>
                <file>${basedir}/../project-parent/buildNumber.properties</file>
              </files>
            </configuration>
          </execution>
        </executions>
      </plugin>
   </plugins>

9
bạn có thể hiển thị bên trong tệp buildNumber.properIES không? cảm ơn bạn!
victorio

Cảm ơn cho một ví dụ làm việc. Tuy nhiên, tại sao tôi gặp lỗiPlugin execution not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-project-properties (execution: default, phase: initialize)
WesternGun

Khi tôi nhập phần <plugin> này bên dưới <plugin> sau </ build> và trước các plugin maven thông thường, tôi gặp lỗi này:Plugin 'execution' not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-project-properties (execution: default, phase: initialize)
PraNuta

@BorisBrodski bạn có thể hiển thị bên trong tệp buildNumber.properIES không? Có vẻ như bạn đã xóa một số chi tiết.
Moustaha Mahmoud

@MoustafaMahmoud tại sao lại là tôi? Đó không phải là câu trả lời của tôi :) Nhưng tôi có thể suy đoán, rằng nó có thể trông giống như 'my.great.product.version = 1.0.0'.
Boris Brodski

5

Câu trả lời này cho một câu hỏi tương tự mô tả cách mở rộng plugin thuộc tính để nó có thể sử dụng một mô tả từ xa cho tệp thuộc tính. Bộ mô tả về cơ bản là một tạo phẩm jar chứa tệp thuộc tính (tệp thuộc tính được bao gồm trong src / main / resource).

Bộ mô tả được thêm vào dưới dạng phụ thuộc vào plugin thuộc tính mở rộng, vì vậy nó nằm trên đường dẫn lớp của plugin. Plugin sẽ tìm kiếm đường dẫn cho tệp thuộc tính, đọc nội dung của tệp vào một thể hiện thuộc tính và áp dụng các thuộc tính đó cho cấu hình của dự án để chúng có thể được sử dụng ở nơi khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.