gpt4 book ai didi

java - Maven javafx 插件 : generate MANIFEST

转载 作者:行者123 更新时间:2023-11-30 10:47:12 25 4
gpt4 key购买 nike

我想在运行时访问我的 pom.xml 的 ${version} 属性,使用如下代码:

primaryStage.setTitle("MyApp v" + Main.class.getPackage().getImplementationVersion());

我正在使用 javafx-maven-plugin构建可执行 jar。知道此代码仅在找到具有版本属性的 MANIFEST 文件时才有效,因此我查看了插件的文档,但没有发现任何东西可以让它生成 MANIFEST 文件。
所以接下来我尝试使用 maven-jar-plugin 它应该完成发布的工作 here .
但是我仍然从上面的代码中得到 MyApp vnull

来 self 的 pom.xml:

<build>
<plugins>
<!-- Set a compiler level -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<manifest>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.1.4</version>
<configuration>
<mainClass>de.tools.Main</mainClass>
<identifier>${project.artifactId}</identifier>
<vendor>Me</vendor>
<bundler>EXE</bundler>
<nativeReleaseVersion>${project.version}</nativeReleaseVersion>
<needShortcut>true</needShortcut>
<needMenu>true</needMenu>
<appName>${project.artifactId}</appName>
</configuration>
<executions>
<execution>
<!-- required before build-native -->
<id>create-jfxjar</id>
<phase>package</phase>
<goals>
<goal>build-jar</goal>
</goals>
</execution>
<execution>
<id>create-native</id>
<phase>package</phase>
<goals>
<goal>build-native</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

我做错了什么?

最佳答案

maven-jar-plugin 配置与jfx-plugin 配置无关。事实上,他们在两个不同的位置(默认配置)创建了两个不同的 jar 。

您必须将以下配置添加到您的 jfx-plugin 配置中:

<manifestAttributes>
<Specification-Title>${project.name}</Specification-Title>
<Specification-Version>${project.version}</Specification-Version>
<Specification-Vendor>${project.organization.name}</Specification-Vendor>
<Implementation-Title>${project.name}</Implementation-Title>
<Implementation-Version>${project.version}</Implementation-Version>
<Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
<Implementation-Vendor>${project.organization.name</Implementation-Vendor>
</manifestAttributes>

您可以通过访问 the-final-jar.jar/META-INF/MANIFEST.MF 检查这些值。

我将在插件存储库上创建一个问题/票证,以默认添加对这些标志的支持,类似于 maven-jar-plugin: javafx-maven-plugin #220

关于java - Maven javafx 插件 : generate MANIFEST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36224829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com