我已经在互联网上搜索了很长一段时间,但无法弄清楚如何配置Maven-war插件或类似的东西,以便系统依赖项包含在内置战争中(WEB-INF / lib文件夹)
在jar-build的情况下,我使用maven依赖插件:
<plugin> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <phase>install</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin>
但是我不明白在打仗的情况下该怎么办。我试过使用maven-war插件,但是在构建中不包括系统依赖项。
[更新]
我有以下类型的行为:
<dependency> <groupId>LoginRadius</groupId> <artifactId>LoginRadius</artifactId> <scope>system</scope> <version>1.0</version> <systemPath>${basedir}\lib\LoginRadius-1.0.jar</systemPath> </dependency>
在我的POM中,构建战争时,这些依赖项未包含在WEB-INF / lib中。
让我尝试总结一下我尝试过的选项:
<packagingIncludes>${java.home}/lib/jfxrt.jar</packagingIncludes>
这行不通!此外,仅具有jar名称,会排除其他所有内容,因此,如果您愿意尝试,请尝试
<packagingIncludes>${java.home}/lib/jfxrt.jar,**/*</packagingIncludes>
Jatin的回答似乎有点复杂,我尝试一次又一次地通过POM来弄清楚提到的WEB-INF POM中包含的系统jar的确切位置。
无论如何,我最终使用了此解决方案,该解决方案最初并没有运行,但经过一段时间并进行了一些更正:
我使用以下命令将jar安装在本地存储库中:
mvn install:install-file -Dfile="C:\Users\hp\Documents\NetBeansProjects\TwitterAndLoginRadiusMaven\lib\LoginRadius-1.0.jar" -DgroupId=LoginRadius -DartifactId=LoginRadius -Dversion=1.0 -Dpackaging=jar`
运行上述命令后,我将POM中的依赖项更改为
<dependency> <groupId>LoginRadius</groupId> <artifactId>LoginRadius</artifactId> <!--<scope>system</scope>--> <version>1.0</version> <!--<systemPath>${basedir}\lib\LoginRadius-1.0.jar</systemPath>--> </dependency>
注意-请参阅我已评论系统范围和systemPath。
现在进行战争,在WEB-INF / lib中包含此LoginRadius-1.0.jar