小编典典

如何在使用Maven构建的战争中包括系统依赖项

java

我已经在互联网上搜索了很长一段时间,但无法弄清楚如何配置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中。


阅读 212

收藏
2020-09-18

共1个答案

小编典典

让我尝试总结一下我尝试过的选项:

<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

2020-09-18