Tôi đã sử dụng dự án Java bằng Spring Framework và Git và tôi muốn hiển thị số bản dựng. Tôi đã tìm thấy số Build Number Maven plugin. Với Git số xây dựng là một băm Git. Tôi không thích điều đó và tôi nghĩ rằng một ngày có nhiều ý nghĩa hơn.Trình xây dựng số Maven, cách lưu số bản dựng trong một tệp?
Tôi đã tìm thấy điều này excellent blog article giải thích cách sử dụng plugin xây dựng số với một cấu hình khác cho SVN và Git. Vì tôi chỉ sử dụng Git, thay vì tạo một hồ sơ mới, tôi chỉ sao chép phần plugin trong thẻ xây dựng của mình.
Khi tôi chạy "gói mvn" nó nói với tôi:
[INFO] --- buildnumber-maven-plugin:1.0:create (default) @ sherd ---
[INFO] Storing buildNumber: 2011-08-04_21-48_stivlo at timestamp: 1312487296631
nào trông ok, nhưng tôi tự hỏi, mà là nó được lưu trữ? "Trạng thái git" không phát hiện bất kỳ tệp mới nào và có vẻ như nó không nằm trong target/too (target/nằm trong mygitignore).
Có lẽ tôi đã thay đổi cấu hình để lưu số bản dựng trong một tệp? Làm thế nào tôi có thể sử dụng giá trị số xây dựng?
Nhờ gợi ý của Michael-O, tôi đã đọc chương về how to filter resource files in Maven Getting Started Guide. Tôi đã tạo một tập tin application.properties trong src/main/nguồn lực/tài sản/application.properties với các nội dung sau:
# application properties
application.name=${pom.name}
application.version=${pom.version}
application.build=${buildNumber}
Tôi đã thêm đoạn mã XML sau trong xây dựng phần của tôi:
<resources>
<resource>
<directory>src/main/resources/properties</directory>
<filtering>true</filtering>
</resource>
</resources>
Bây giờ khi tôi gọi từ dòng lệnh "gói mvn", tập tin thuộc tính này được lưu trong mục tiêu/classes/tài sản/application.properties, ví dụ với nội dung sau:
# application properties
application.name=Sherd Control Panel
application.version=1.0.1-SNAPSHOT
application.build=2011-08-05_05-55_stivlo
Tất cả mọi thứ hoạt động tốt từ dòng lệnh, nhưng, tiếng thở dài, m2eclipse cho Build lỗi:
05/08/11 6.05.03 CEST: Build errors for obliquid-cp;
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal
org.codehaus.mojo:buildnumber-maven-plugin:1.0:create (default) on project
sherd: Cannot get the branch information from the scm repository :
Exception while executing SCM command.
Đối với một số lý do m2eclipse cố gắng để kết nối với kho lưu trữ của tôi, nhưng nó có thể không phải vì nó là một kho Git truy cập với SSH và một khóa riêng. Tôi tự hỏi nếu tôi có thể nói với m2eclipse để không kết nối với Git.
Sau khi tìm hiểu thêm, tôi đã tìm hiểu về sửa đổiOnScmTùy chọn bảo mật, đặt thành đúng và bây giờ cũng là tác phẩm m2eclipse. Để tham khảo, đây là cấu hình đầy đủ của plugin maven buildnumber mà tôi đã sử dụng (nó nằm trong tệp pom.xml trong phần build/plugins).
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<revisionOnScmFailure>true</revisionOnScmFailure>
<format>{0,date,yyyy-MM-dd_HH-mm}_{1}</format>
<items>
<item>timestamp</item>
<item>${user.name}</item>
</items>
</configuration>
</plugin>
tuy nhiên, plugin không tạo tệp đó, ít nhất với cấu hình của tôi. Tôi đã thành công một phần bằng cách lọc các tệp thuộc tính, nhưng tôi đã gặp phải một vấn đề khác như trong câu hỏi được cập nhật của tôi. – stivlo
bạn đã thử tạo tệp theo cách thủ công chưa và bắt đầu thêm buildNumber vào đầu tiên? Làm điều đó và, làm điều của bạn và sau đó kiểm tra xem số có tăng lên hay không. Đảm bảo bạn đã đáp ứng các yêu cầu mà nó yêu cầu. –
Cảm ơn bạn đã đề xuất. Tôi đã cố gắng tạo một tệp buildNumber.properties rỗng và thực thi buildnumber: create và không có gì xảy ra, sau đó tôi đã cố gắng đặt bên trong một 1, thực hiện một buildnumber: create và không có gì xảy ra. Trong thời gian chờ đợi, tôi chỉ tìm ra giải pháp cho vấn đề cuối cùng bằng cách sử dụng các thuộc tính được lọc. Tôi sẽ cập nhật câu hỏi của mình với giải pháp đầy đủ. – stivlo