1
我有一个很大的应用程序,包括几十个微服务WAR部署,其中一个是支持Web客户端的UI控制器。我希望能够在用户界面上显示“关于”页面,其中列出了所有组件微服务的版本。我可以通过运行mvn dependency:list
并使用适当的过滤器手动轻松生成此列表,但我想要在生成过程中自动生成该列表,然后将其插入到UI服务WAR中,以便在运行时访问它。自动生成关于对话版本
我有一个很大的应用程序,包括几十个微服务WAR部署,其中一个是支持Web客户端的UI控制器。我希望能够在用户界面上显示“关于”页面,其中列出了所有组件微服务的版本。我可以通过运行mvn dependency:list
并使用适当的过滤器手动轻松生成此列表,但我想要在生成过程中自动生成该列表,然后将其插入到UI服务WAR中,以便在运行时访问它。自动生成关于对话版本
depends-maven-plugin
将生成一个文件(默认为:target/classes/META-INF/maven/dependencies.properties
)。此文件包含dependency:tree
的可解析(且可读可读)表示,并且由于它将此文件写入classes/META-INF
,因此默认情况下,它将在捆绑应用程序中可用。
<plugin>
<groupId>org.apache.servicemix.tooling</groupId>
<artifactId>depends-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<id>generate-depends-file</id>
<goals>
<goal>generate-depends-file</goal>
</goals>
</execution>
</executions>
</plugin>
当运行你会看到Maven的写这篇日志声明:
[INFO] --- depends-maven-plugin:1.4.0:generate-depends-file (generate-depends-file) @ sample ---
[INFO] Created: /dev/code/stackoverflow/target/classes/META-INF/maven/dependencies.properties
下面是生成的文件的一个例子:
# Project dependencies generated by the Apache ServiceMix Maven Plugin
# Generated at: Mon Aug 28 18:42:30 IST 2017
groupId = com.stackoverflow
artifactId = sample
version = 1.1-SNAPSHOT
com.stackoverflow/sample/version = 1.1-SNAPSHOT
# dependencies
ch.qos.logback/logback-access/version = 1.2.3
ch.qos.logback/logback-access/type = jar
ch.qos.logback/logback-access/scope = compile
ch.qos.logback/logback-classic/version = 1.2.3
ch.qos.logback/logback-classic/type = jar
ch.qos.logback/logback-classic/scope = compile
... etc
你如下搞这个插件
如果您有微服务,UI不应该知道正在使用哪个版本的后端服务(微服务),也不应该帽子以某种方式打包到你的用户界面中......如果你改变了一个微服务并部署了一个新版本,而不是信息只是错误......那么如果你已经发现'dependency:list'也可以生成该列表到一个文件... – khmarbaise
我想我正在寻找的是一种方式来调用从POM的依赖:列表,并捕获其输出。我知道如何将静态文件打包到服务战中。是的,你是对的,如果服务在部署之后得到更新,版本信息将是陈旧的,但这实际上是一个调试工具,用于了解我正在远程访问的系统上的内容。 – user2650994
将'dependency:list'文件安全地保存到目标文件夹'target/...'并打包到结果war文件中?这意味着您需要在'prepare-package'阶段执行插件... – khmarbaise