我终于让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>
这非常有效:我在jar的同一目录中获得了一个可执行jar和一个lib
文件夹,其中复制了所有库。
但是我添加了两个本地jar(Protocol-decoder.jar
和bluecove-2.1.1-SNAPSHOT.jar
)作为依赖项。但是,它们不会被复制到lib文件夹中,也不会被添加到jar中清单的类路径中。
我是Maven的新手,但我认为maven-resources-plugin
是将依赖项复制到lib文件夹的插件。我如何告诉Maven或插件也复制我的本地依赖项。如果没有创建本地Maven存储库并在那里添加我的jar,这可能吗?
答案 0 :(得分:0)
您正在寻找maven-dependency-plugin,目标副本依赖项。
<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>