当前位置: 首页 > 面试题库 >

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

龙晟睿
2023-03-14
问题内容

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



 类似资料:
  • 我有一个SpringBootWeb项目,它依赖于maven overlay war文件,这也是SpringWeb项目。pom中包含战争。xml。 我如何部署战争与Spring Boot应用程序,以便我可以使用属于战争文件的Restendpoint。我试图从STS启动应用程序,只需将其作为Java应用程序运行。当应用程序启动时,我只能看到属于Spring Boot项目的URL,但属于war文件的UR

  • 我。 我有一个名为的模块,我希望将它的所有依赖项打包到一个JAR中。我不想每次都创建fat big jar,并将其与应用程序代码一起部署。我的应用程序jar的大小<1 MB,但依赖性>20 MB 在我的服务器上,我将运行我的应用程序,如下所示: 当我更改应用程序代码时,我只需要将部署到我的服务器,并且只有当我更改依赖项时才需要上传(这是非常罕见的)。 有很多关于如何使用java源代码构建fat j

  • 问题内容: 我正在使用maven-assembly插件创建我的应用程序的jar,包括其依赖项,如下所示: (我省略了与问题无关的其他内容) 到目前为止,此方法运行良好,因为它创建了一个lib包含所有依赖项的目录。但是,我最近添加了一个范围为的新依赖项system,它不会将其复制到lib输出目录。我肯定在这里缺少一些基本的东西,所以我寻求帮助。 我刚刚添加的依赖项是: 我能够包括此依赖项的唯一方法是

  • 我想使用ProGuard(项目a)混淆项目(jar)。然而,这个项目依赖于另一个war(项目B),并且使用了我在B中开发的一些类。我使用了这个问题的解决方案:从依赖于其他项目的maven项目构建一个jar,但它不起作用,当我在项目a上使用命令时,我得到了错误: 或 我怎样才能把这个罐子弄糊涂? 编辑1 在项目A的POM中,我有: > 内置部分: 在项目B中,我有: