Tôi có thể xác nhận rằng Maven 3.x {maven.build.timestamp}
hiện đang "hoạt động". Họ làm việc arounded vấn đề, rõ ràng. Không properties
cần giải pháp thay thế bổ sung nữa.
Tuy nhiên, hãy cẩn thận với plugin "lọc" (maven-resources-plugin) của bạn đã được cập nhật. Nó cần phải tương đối mới, vì vậy nếu mvn help:effective-pom
hiển thị phiên bản cũ (ví dụ: 2.6), hãy chuyển nó sang thứ gì đó mới hơn, sửa nó cho tôi, 3.x ex:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<properties><timestamp>...
giải pháp thay thế không còn cần thiết ...
Điều này cũng làm rõ, đại loại là tại sao nó lại hoạt động trong IntelliJ nhưng không hoạt động trong dòng lệnh. IntelliJ có thể sử dụng hằng số maven "đã sửa đổi / nội bộ" của riêng họ, vì vậy nó đã hoạt động ở đó, nhưng không phải từ dòng lệnh maven.
Cũng lưu ý nếu bạn thêm thư mục tài nguyên lọc vào pom, bạn cũng có thể cần phải "thêm lại" thư mục mặc định, nó sẽ bị mất, ví dụ:
<resource>
<directory>src/main/resources-filtered</directory> <!-- to get "maven.build.timestamp" into resource properties file -->
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory> <!-- apparently have to add this is you have the other... -->
</resource>
NB nếu bạn đang sử dụng Spring boot với tư cách là cha mẹ của mình, bạn phải sử dụng @ maven.build.timestamp @ để thay thế . Cũng lưu ý nếu bạn đang sử dụng Spring boot, có một tệp META-INF/build-info.properties
được tùy chọn tạo bởi tệp spring-boot-maven-plugin
mà bạn có thể đọc (mùa xuân cung cấp một BuildProperties
bean để thuận tiện cho việc đọc nó).
target/${project}
thư mục, nhưng trong cấu hình actuall của tôi, Tomcat không sử dụng thư mục này ...