捆绑了依赖项的JavaFX jar
发布时间:2020-12-14 04:51:16 所属栏目:百科 来源:网络整理
导读:我刚刚提出了一个关于使用 javafxpackager创建 JavaFX jar的问题,你可以看到它 here.我的问题是我无法在清单中包含类路径.好吧,当我在等待答案时,我尝试了maven-antrun-plugin.它运行良好,我可以运行我的应用程序与依赖项,但是(总有一个但是)只有依赖项OUTSI
我刚刚提出了一个关于使用
javafxpackager创建
JavaFX jar的问题,你可以看到它
here.我的问题是我无法在清单中包含类路径.好吧,当我在等待答案时,我尝试了maven-antrun-plugin.它运行良好,我可以运行我的应用程序与依赖项,但是(总有一个但是)只有依赖项OUTSIDE我的最后一个jar.所以它是这样的:
FinalJar.jar lib |_{all dependencies here} 我的清单文件通过JavaFX-Class-Path属性指向依赖项.如果我把依赖项放在jar中,就像我想要的那样,它找不到我的依赖项.有帮助吗? 编辑:这是将依赖项添加到jar中的步骤,它位于pom.xml中: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.6</version> <executions> <execution> <phase>package</phase> <configuration> <target> <taskdef name="jfxjar" classname="com.sun.javafx.tools.ant.FXJar" classpathref="maven.plugin.classpath" /> <jfxjar destfile="${project.build.directory}/dist/${project.build.finalName}"> <fileset dir="${project.build.directory}/classes" /> <!-- Adds the dependencies to jar --> <fileset dir="${project.build.directory}/lib/" includes="*.jar" /> <application name="${project.name}" mainClass="com.google.code.mzplay.principal.PrincipalFX" /> <resources> <!-- Adds the dependencies to classpath --> <fileset dir="${project.build.directory}/lib/" includes="*.jar" /> </resources> </jfxjar> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>com.oracle</groupId> <artifactId>ant-javafx</artifactId> <version>${javafx.version}</version> <systemPath>${java.home}/../lib/ant-javafx.jar</systemPath> <scope>system</scope> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>javafx</artifactId> <version>${javafx.version}</version> <systemPath>${java.home}/lib/jfxrt.jar</systemPath> <scope>system</scope> </dependency> </dependencies> </plugin> 解决方法
最后,我的POM的“构建”部分变成了这个(你可以看到它也有一个焊接部分),自从我使用它以来已经很久了,所以我甚至不知道它是否已经好了
<build> <finalName>JarName</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.4</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.3</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <includeScope>runtime</includeScope> <outputDirectory>${project.build.directory}/dist/lib</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.6</version> <executions> <execution> <phase>package</phase> <configuration> <target> <taskdef name="jfxjar" classname="com.sun.javafx.tools.ant.FXJar" classpathref="maven.plugin.classpath" /> <jfxjar destfile="${project.build.directory}/dist/${project.build.finalName}"> <fileset dir="${project.build.directory}/classes" /> <application name="${project.name}" mainClass="com.google.code.mzplay.principal.WeldJavaFXLauncher" /> <resources> <fileset dir="${project.build.directory}/dist/" includes="lib/*.jar" /> </resources> </jfxjar> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>com.oracle</groupId> <artifactId>ant-javafx</artifactId> <version>${javafx.version}</version> <systemPath>${java.home}/../lib/ant-javafx.jar</systemPath> <scope>system</scope> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>javafx</artifactId> <version>${javafx.version}</version> <systemPath>${java.home}/lib/jfxrt.jar</systemPath> <scope>system</scope> </dependency> </dependencies> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>2.0</version> </plugin> </plugins> <pluginManagement> <plugins> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <versionRange>[2.0,)</versionRange> <goals> <goal>copy-dependencies</goal> </goals> </pluginExecutionFilter> <action> <execute /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement> </build> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Ruby 读写 YAML 配置文件
- xml中qualified的作用
- c – 同一翻译单元中的模板类和相应的extern模板类
- ruby-on-rails – 如何使用rails和mongoid通过“count”关联
- oracle中查询表的信息,包括表名,字段名,字段类型,主键,
- 用于乐器的C/C++声音库,您可以在其中操作音频数据
- VB启动计算机并控制
- c – const TypedeffedIntPointer不等于const int *
- ruby-on-rails – 在开发模式下,Rails3不会在lib中重新加载
- postgresql – 将postgres_ext(或Rails 4)数组与关联组合在