Java 如何从Maven repo引用本机DLL?
如果一个JAR在Maven repo中附带了一个本机DLL,那么我需要在pom.xml中放入什么才能将该DLL放入打包中 更具体地说,以库为例。运行Java 如何从Maven repo引用本机DLL?,java,maven,Java,Maven,如果一个JAR在Maven repo中附带了一个本机DLL,那么我需要在pom.xml中放入什么才能将该DLL放入打包中 更具体地说,以库为例。运行mvn包后,如何使jacob-1.14.3-x64.dll进入WEB-INF/lib文件夹 在我们的本地Nexus存储库中,我们对JAR和DLL有以下定义: <dependency> <groupId>net.sf.jacob-project</groupId> <artifactId>jaco
mvn包后,如何使jacob-1.14.3-x64.dll
进入WEB-INF/lib
文件夹
在我们的本地Nexus存储库中,我们对JAR和DLL有以下定义:
<dependency>
<groupId>net.sf.jacob-project</groupId>
<artifactId>jacob</artifactId>
<version>1.16-M2</version>
</dependency>
<dependency>
<groupId>net.sf.jacob-project</groupId>
<artifactId>jacob</artifactId>
<version>1.16-M2</version>
<classifier>x64</classifier>
<type>dll</type>
</dependency>
net.sf.jacob-project
雅各布
1.16平方米
net.sf.jacob-project
雅各布
1.16平方米
x64
动态链接库
但是,将相同的依赖项放在我们的项目POM中并运行mvn包
,并不能使DLL转到WEB-INF/lib
,但JAR可以很好地做到这一点
我们做错了什么?对于DLL,您需要使用
您可以过滤掉除DLL之外的所有依赖项,并在项目结构中指定要将它们复制到的任何位置,包括您的target/webapp/WEB-INF/lib。多亏了0018月的提示,我才能够解决这个问题。适用于我的maven代码:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeTransitive>true</excludeTransitive>
<includeArtifactIds>jacob</includeArtifactIds>
<failOnMissingClassifierArtifact>true</failOnMissingClassifierArtifact>
<silent>false</silent>
<outputDirectory>target/APPNAME/WEB-INF/lib</outputDirectory>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
org.apache.maven.plugins
maven依赖插件
复制依赖项
准备包装
复制依赖项
真的
雅各布
真的
假的
目标/APPNAME/WEB-INF/lib
真的
真的
真的
PS我知道jacob 1.14已经过时了——只是举个例子,它没有回答这个问题?DLL是如何存储在您的存储库中的?它是否使用带有POM包装的DLL分类器?@eis不幸的是,没有-他们决定删除对DLL的需要:)@Monty0018更新了我的问题太好了,谢谢!把这个魔咒放到准备软件包
阶段就成功了!另一个答案是代码,对不起,我当时没有注意到这个评论。你能告诉我一件事吗:它是如何工作的?你的解决方案?启动时必须修改库的路径吗?您必须做一些其他的事情来修改pom.xml吗?