cod*_*iot 31 java eclipse maven
我已经在互联网上搜索了很长时间,我无法弄清楚如何配置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>
Run Code Online (Sandbox Code Playgroud)
但是我无法理解在战争构建的情况下要做什么.我尝试过使用maven-war插件,但它不包括构建中的系统依赖项.
[UPDATE]
我有类型的依赖:
<dependency>
<groupId>LoginRadius</groupId>
<artifactId>LoginRadius</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>${basedir}\lib\LoginRadius-1.0.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在我的POM中,当构建war时,这些依赖项不包含在WEB-INF/lib中.
cod*_*iot 14
让我试着总结一下我尝试的选项:
__CODE__
这不起作用!此外,只有罐子名称,排除其他一切,所以如果你愿意尝试然后尝试
__CODE__
Jatin的答案似乎有点复杂,我试图再次通过POM来弄清楚提到的系统罐在WEB-INF POM中的确切位置.
无论如何,我最终使用了这个解决方案,这个解决方案最初没有工作,但经过一段时间后,一些修正工作:
__CODE__ 使用以下命令:
__CODE__
运行上面的命令后,我将POM中的依赖项更改为
<packagingIncludes>${java.home}/lib/jfxrt.jar</packagingIncludes>
Run Code Online (Sandbox Code Playgroud)
注 - 请参阅我已评论系统范围和systemPath.
现在构建战争,在WEB-INF/lib中包含此LoginRadius-1.0.jar
JRS*_*fty 12
如果您不能将第三方库安装到本地存储库,由于第三方进行了一些愚蠢的命名/打包检查,您仍然可以system在构建时将您的范围依赖项添加到最终包中(至少如果您是使用maven-war-plugin您需要的位置来创建这样的配置.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<failOnMissingWebXml>true</failOnMissingWebXml>
<webResources>
<resource>
<directory>path/to/lib/in/project</directory>
<targetPath>WEB-INF/lib</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
不确定,但我相信该库必须位于项目基本目录的本地.我倾向于在src/main/被调用下创建一个目录lib来保存这些类型的第三方库.在构建过程中,它们被放置在正确的目录中并添加到war文件中.
您可以根据需要将 war 插件配置为包含或排除全部或部分jar ,如下所述。简单而有效
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}\lib</directory>
<targetPath>WEB-INF/lib</targetPath>
<filtering>false</filtering>
<includes>
<include>**/*.jar</include>
</includes>
<excludes>
<include>**/javax.servlet-api-3.1.0.jar</include>
</excludes>
</resource>
</webResources>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45311 次 |
| 最近记录: |