java - Maven NAR 插件 + webapp 中的 Spring boot,在 Tomcat 中加载 .nar 工件
问题描述
我已经设法将平台依赖项添加到jni 工件war
并由其生成到.maven-nar-plugin
WEB-INF/lib/
但问题是:添加的工件具有.nar
扩展名,而WebappClassLoaderBase
仅将.jar
s 添加到其内部类存储库中,因此我的 jni 桥未加载并且类无法访问导致 ClassNotFoundException
.
我在这里有什么选择?我认为有可能
- 以某种方式更改工件扩展
spring-boot:repackage
? - 将此自定义工件添加到类加载器存储库?
哪个会更好,我将如何实施?
解决方案
好的,所以我结束了maven-dependency-plugin
:
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${dep.groupId}</groupId>
<artifactId>${dep.artifactId}</artifactId>
<version>${dep.version}</version>
<type>nar</type>
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory>
<destFileName>${dep.artifactId}-${dep.version}.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
但是,仍然存在要处理的重新部署问题,因此,如果您真的想这样做,这就是方法,但您可能不需要那么难。
推荐阅读
- swift - 如何从关联的帐户对 Stripe 客户进行收费
- windows - Windows服务器上的xampp phpmyadmin错误代码500
- indexing - 如何让 __index 和 __newindex 检测 table.index
- mongodb - 如何将我的 mongo 数据库的副本创建到远程服务器
- ruby - Ruby Sort_by 多个参数相反 asc/desc
- eclipse - 如何更改 Eclipse IDE 标题栏
- c# - 如何在 XUnit 中编写端到端测试
- javascript - 通过单击图表Chart js + react打印列表
- azure - Azure C# (.NET) 计时器功能未按计划或手动运行
- angular - 尝试在 Angular Firebase 中初始化应用程序时输入错误