Tôi đang cố gắng tìm hiểu xem Maven có một số trình cắm thêm có sẵn có thể được sử dụng cho các tạo phẩm thời gian đóng dấu hay không. Tôi tạo ra một tập tin lắp ráp và đang sử dụng các plugin maven-lắp ráp để tạo ra một phân phối cuối cùng (lọ, tài liệu, kịch bản, vv). Tôi muốn đặt tên tệp phân phối này là domain_year_month_day.zip. Làm thế nào tôi có thể nối thêm phần ngày của dấu thời gian vào cuối tệp zip cuối cùng đang được tạo. Cảm ơn.Làm cách nào để tạo dấu thời gian cho một tạo phẩm đầu ra trong Maven?
Trả lời
Bạn có thể sử dụng maven-timestamp-plugin để đặt thuộc tính (ví dụ: timestamp
) và sử dụng sau này trong tên cuối cùng của hội đồng của bạn.
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>create-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<finalName>domain_${timestamp}</finalName>
<descriptors>
<descriptor>src/main/assembly/my-descriptor.xml</descriptor>
</descriptors>
<attach>true</attach>
</configuration>
</execution>
</executions>
</plugin>
Là một thay thế, bạn có thể đặt một số mã Groovy trong POM của bạn bằng cách sử dụng GMaven plugin:
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>set-custom-property</id>
<phase>initialize</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
def timestamp = new Date().format('MM_dd_yy')
project.properties.setProperty('timestamp', timestamp)
</source>
</configuration>
</execution>
<execution><!-- for demonstration purpose -->
<id>show-custom-property</id>
<phase>generate-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
println project.properties['timestamp']
</source>
</configuration>
</execution>
</executions>
</plugin>
Một đầu ra mẫu cho thấy tài sản:
$ mvn generate-resources [INFO] Scanning for projects... [INFO] ... [INFO] --- gmaven-plugin:1.3:execute (set-custom-property) @ Q4081274 --- [INFO] [INFO] --- gmaven-plugin:1.3:execute (show-custom-property) @ Q4081274 --- 11_02_10 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ...
Và một lần nữa, sử dụng này tài sản sau này trong tên xây dựng của hội đồng của bạn.
nếu bạn sử dụng Hudson/Jenkins, bạn chỉ có thể sử dụng biến $ {BUILD_ID} để nhận loại dấu thời gian cho bất kỳ tệp thuộc tính nào bạn muốn chỉnh sửa.
thông tin cho các biến môi trường khác Hudson/Jenkins hỗ trợ, hãy xem ở đây: http://wiki.hudson-ci.org/display/HUDSON/Building+a+software+project
Bạn không cần maven-timestamp-plugin với các phiên bản mới hơn của maven. Kể từ 2.1'ish, Maven đã cung cấp thuộc tính đặc biệt maven.build.timestamp.
Bạn đặt định dạng trong các thuộc tính pom với một cái gì đó như thế này:
<maven.build.timestamp.format>yyyy-MM-dd'T'HH.mm.ss</maven.build.timestamp.format>
Và sau đó sử dụng $ {} maven.build.timestamp bất cứ nơi nào bạn cần một tài sản timestamp. Xem http://maven.apache.org/guides/introduction/introduction-to-the-pom.html để biết chi tiết.
Như ${maven.build.timestamp}
dường như lỗi trong maven, thực hiện giải pháp như sau:
Tạo biến mới (tôi đã chọn "build.timestamp", tại đây) - và, tùy chọn, chỉ định định dạng:
pom.xml
<project>
...
<properties>
...
<build.timestamp>${maven.build.timestamp}</build.timestamp>
<maven.build.timestamp.format>yyyyMMdd</maven.build.timestamp.format>
<!-- default is: yyyyMMdd-HHmm -->
</properties>
<build>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>some-assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
...
Sử dụng biến tùy chỉnh từ bất cứ đâu:
0.123.số-assembly.xml
<?xml version="1.0"?>
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>release-${build.timestamp}</id>
<baseDirectory>/</baseDirectory>
<includeBaseDirectory>false</includeBaseDirectory>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>${project.build.directory}/${project.artifactId}-${project.version}</directory>
</fileSet>
</fileSets>
</assembly>
- 1. Làm cách nào để thêm thông tin đóng dấu thời gian vào các tạo tác Maven?
- 2. Làm cách nào để tạo các dấu thời gian Unix?
- 3. Xóa một tạo phẩm khỏi Maven Central
- 4. Làm thế nào để tạo dấu thời gian theo dõi
- 5. Làm cách nào để tải xuống một tạo phẩm Maven cụ thể trong một dòng lệnh?
- 6. Làm cách nào để tải xuống các tạo phẩm Maven trong một plugin?
- 7. Tạo phẩm nào cho org.springframework.mail?
- 8. Làm cách nào để tạo dấu thời gian unix không điều chỉnh cho giờ địa phương?
- 9. Cách tốt nhất để tạo dấu thời gian di chuyển
- 10. Tạo một dấu thời gian duy nhất trong Java
- 11. làm thế nào để tạo ra một lớp năng động tại thời gian chạy trong Java
- 12. Làm cách nào để tạo đầu ra cột trong Perl?
- 13. Làm thế nào để loại bỏ các tạo phẩm xây dựng được tạo ra khỏi thư mục đích của Maven?
- 14. Làm cách nào để tìm dấu thời gian/ngày tạo của nút thư mục lật đổ
- 15. Làm thế nào để có được NHibernate tạo ra SQL trong mã tại thời gian chạy?
- 16. Làm cách nào để tạo dấu thời gian Unix trên Android?
- 17. Làm cách nào để tạo NHibnerate IUserType cho Thời gian trong Sql Server 2008/2012?
- 18. Cách tạo dòng thời gian với LaTeX?
- 19. Làm thế nào để tạo dấu thời gian trong vài giây
- 20. MySQL tạo thời gian và thời gian cập nhật dấu thời gian
- 21. Cách tạo trường Ngày/dấu thời gian được tạo tự động trong Play!/JPA?
- 22. Đặt dấu thời gian tạo tệp trong Java
- 23. Tạo một lớp trong thời gian chạy
- 24. Làm cách nào để tạo bộ đếm thời gian đếm ngược cho cocos2d?
- 25. Xem chữ ký PGP trên tạo phẩm Maven
- 26. Nhận dấu thời gian cho ngày bắt đầu của ngày
- 27. Dấu thời gian của MySQL chỉ khi tạo
- 28. Làm thế nào để tạo ra một JAR với mã nguồn trong Maven
- 29. Thời gian tạo HWND
- 30. Đặt cột dấu thời gian JPA được cơ sở dữ liệu tạo ra?
này là rất tốt. Cảm ơn một lần nữa cho câu trả lời và thời gian của bạn Pascal. – John
Sau đó chấp nhận nó bạn của tôi: D –