在构建JavaFX可执行文件时,如何在Maven中复制本地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>

我终于让Maven用这个pom构建了一个JavaFX可执行jar:

<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条目。