在构建JavaFX可执行文件时,如何在Maven中复制本地JAR?
我终于让Maven用这个pom构建了一个JavaFX可执行jar:在构建JavaFX可执行文件时,如何在Maven中复制本地JAR?,jar,maven-3,javafx-8,Jar,Maven 3,Javafx 8,我终于让Maven用这个pom构建了一个JavaFX可执行jar: <dependencies> <dependency> <groupId>commons-configuration</groupId> <artifactId>commons-configuration</artifactId> <version>1.7</version>
<dependencies>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>net.sf.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>ProtocolAnalyzer</groupId>
<artifactId>com.protocolanalyzer.api</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/Protocol-decoder.jar</systemPath>
</dependency>
<dependency>
<groupId>ProtocolAnalyzer</groupId>
<artifactId>bluecove</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/bluecove-2.1.1-SNAPSHOT.jar</systemPath>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.1.1</version>
<configuration>
<mainClass>com.andres.multiwork.pc.Main</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
共用配置
共用配置
1.7
net.sf.opencsv
opencsv
2
协议分析器
com.protocolanalyzer.api
1
系统
${project.basedir}/libs/Protocol-decoder.jar
协议分析器
蓝湾
1
系统
${project.basedir}/libs/bluecove-2.1.1-SNAPSHOT.jar
com.zenjava
javafxmaven插件
8.1.1
com.andres.multiwork.pc.Main
org.apache.maven.plugins
maven编译器插件
2.5.1
1.8
1.8
这非常有效:我在jar的同一目录中获得了一个可执行jar和一个lib
文件夹,所有库都被复制到这个目录中
但是我有两个本地jar(protocoldecoder.jar
和bluecove-2.1.1-SNAPSHOT.jar
),它们是我作为依赖项添加的。但是,它们不会被复制到lib文件夹中,也不会被添加到jar内部清单中的类路径中
我是Maven新手,但我认为
Maven资源插件
是将依赖项复制到lib文件夹的插件。我如何告诉Maven或插件也复制我的本地依赖项。如果不创建本地Maven存储库并在那里添加我的JAR,这是可能的吗?您正在寻找Maven依赖插件,目标副本依赖
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
maven依赖插件
复制依赖项
包裹
复制依赖项
解放党
我尝试添加这个:和正在运行的clean jfx:jar
但是库仍然没有被复制。您想将outputDirectory设置为lib。好的,我将outputDirectory
设置为${build.directory}/jfx/app/lib
和所有jar都在被复制,但是jar中的类路径
仍然不包括我的本地jars,因为系统范围意味着它们依赖于系统。如果希望将它们作为项目的一部分,则需要将它们放在存储库中(请参见mvn安装文件),并在正常范围内依赖它们。如果坚持不好的做法,可以通过maven jar插件手动添加lib/nam姓氏.jar条目。