我想在RESTful服务中读取我的maven-project的当前工件版本。我的代码是用JAX-RS(Quarkus)编写的。

我正在使用以下pom.xml代码段:

      <plugin>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-maven-plugin</artifactId>
        <version>${quarkus.version}</version>
        <configuration>
          <archive>
            <manifest>
            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
            </manifest>
          </archive>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>
        </executions>
      </plugin>


我阅读了以下Java代码段的版本:

      String vendor = getClass().getPackage().getImplementationVendor();


在我看来,quarkus-maven-plugin忽略了该行,因为maven-jar-plugin正常工作(我在另一个项目中使用了此代码):

      <addDefaultImplementationEntries>true</addDefaultImplementationEntries>


我对maven和quarkus并没有真正的深刻了解。

我在设置quarkus-maven-plugin时出错了吗?
有没有不直接读取pom.xml的解决方法?

感谢你们对我的帮助。

编辑:
出现以下问题时,我会将该线程标记为“已回答”
已解决(由@Guillaume Smet打开):
https://github.com/quarkusio/quarkus/issues/5023

编辑:
到今天为止问题已解决。
https://github.com/quarkusio/quarkus/issues/5100

最佳答案

添加addDefaultImplementationEntries将无济于事,我们自己构建jar,并且不向其中推送任何信息。

我为此创建了https://github.com/quarkusio/quarkus/issues/5023

暂时,您可以将信息推送到清单清单上(如果已有的话,我们会对其进行增强),也可以通过以下方式在REST资源中注入我们从POM文件中得出的值:

@ConfigProperty(name = "quarkus.application.name")
String name;

@ConfigProperty(name = "quarkus.application.version")
String version;

关于java - quarkus-maven-plugin不会向MANIFEST添加实现条目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58623758/

10-09 22:26