Как отобразить buildnumber в веб-приложении на основе spring
Мне нужно отобразить номер сборки в моем индексе.страница jsp
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8" />
<title>Title (build: BUILDNUMBER )
</head>
номер сборки может быть предоставлен maven в A *.файл свойств. Как лучше всего читать *.свойства файла и отображения свойства с Spring?
3 ответов
вы можете загрузить .properties
файл в качестве источника сообщения локализации (используя ResourceBundlerMessageSource
) и получить доступ к нему в JSP с помощью <spring:message>
или <fmt:message>
:
src/main/resources/buildInfo.properties
:
buildNumber=${buildNumber}
здесь buildNumber
подвергается воздействию, как предлагает Роланд Шнайдер.
настройка контекста:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name = "basenames"><value>buildInfo</value></property>
<!-- Or a comma separated list if you have multiple .properties files -->
</bean>
файл JSP:
Version: <spring:message code = "buildNumber" />
pom.xml
:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
вот как я это сделал, используя maven + jstl и оставляя весну, поскольку это просто усложняет.
построить.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<jsp:useBean id="dateValue" class="java.util.Date" />
<jsp:setProperty name="dateValue" property="time" value="${timestamp}" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Build info</title>
</head>
<body>
<table>
<tr>
<td>Build time: </td>
<td><fmt:formatDate value="${dateValue}" pattern="dd.MM.yyyy HH:mm:ss" /></td>
</tr>
<tr>
<td>Build number: </td>
<td>${buildNumber}</td>
</tr>
<tr>
<td>Branch: </td>
<td>${scmBranch}</td>
</tr>
</table>
</body>
</html>
Maven pom
<!-- plugin that sets build number as a maven property -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
<configuration>
<format>{0,date,yyDHHmm}</format>
<items>
<item>timestamp</item>
</items>
</configuration>
</execution>
</executions>
<configuration>
<format>{0,date,yyDHHmm}</format>
<items>
<item>timestamp</item>
</items>
</configuration>
</plugin>
<!-- war plugin conf to enable filtering for our file -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp/</directory>
<includes>
<include>build.jsp</include>
</includes>
<filtering>true</filtering>
<targetPath>.</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
более подробную информацию об использовании buildnumber-maven-plugin можно найти на страница использование.
предупреждение: фильтрация ресурсов не работает таким образом.JSP-файл. Как отметил Паскаль Тивент (спасибо) индекс.jsp не является ресурсом, но принадлежит webapp.
Я не знаю точного ответа на ваш вопрос, но вы можете жестко закодировать номер здания в индекс.файл jsp с maven непосредственно при индексировании.файл jsp копируется в целевой каталог. Вам нужно будет только вставить переменную в индекс.jsp и настроить Maven-resource-плагин для включения фильтрации.
пример:
.jsp
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8" />
<title>Title (build: ${buildNumber} )
</head>
конфигурация Maven (извлечение из pom.в XML)
<build>
<!-- Enable Resource Filtering -->
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<!-- Fetch the SVN build-number into var ${buildNumber} -->
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
</configuration>
</plugin>
</plugins>
</build>
для получения дополнительной информации о фильтрации взглянуть на Руководство По Фильтрации Maven