我有一个使用jMUPdf库作为外部依赖项的Java Web项目。由于我无法在任何公共maven存储库中找到jMUPdf,我尝试使用install-file将其安装到我的本地m2存储库
jMUPdf使用jmupdf.jar和依赖的jmupdf64.dll,所以我这样做了:
mvn install:install-file -Dfile=jmupdf.jar -DgroupId=jmupdf -DartifactId=jmupdf -Dversion=0.4.1 -Dpackaging=jar
mvn install:install-file -Dfile=jmupdf64.dll -DgroupId=jmupdf -DartifactId=jmupdfdll64 -Dversion=0.4.1 -Dpackaging=dll
我可以在我的本地m2存储库中看到两个库。
这是我的pom.xml
的摘录 <dependency>
<groupId>jmupdf</groupId>
<artifactId>jmupdfdll64</artifactId>
<version>0.4.1</version>
<scope>runtime</scope>
<type>dll</type>
</dependency>
<dependency>
<groupId>jmupdf</groupId>
<artifactId>jmupdf</artifactId>
<version>0.4.1</version>
</dependency>
但是:在编译我的项目(生成war文件)之后,我只看到\ WEB-INF \ lib中的jmupdf.jar,并且缺少DLL。这当然是关于丢失的jmupdf64.dll
的运行时异常的原因如何确保dll是生成的war文件的一部分?
编辑:...它也将正确部署(例如我的Tomcat上的webapps / MYAPP / WEB-INF / lib)?
答案 0 :(得分:0)
这是我使用 ms-jdbc 实现集成安全性需求的简单解决方案...
<dependencies>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc_auth</artifactId>
<version>8.4.1.x64</version>
<type>dll</type>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>8.4.1.jre14</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeScope>provided</excludeScope>
<includeTypes>dll</includeTypes>
<overWriteIfNewer>true</overWriteIfNewer>
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>