首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在war文件中不包括src/lib/*.war

在war文件中不包括src/lib/*.war
EN

Stack Overflow用户
提问于 2019-05-17 15:52:54
回答 4查看 866关注 0票数 1

我要在运行mvn验证时

在“web/lib`”文件夹中包含从/lib/文件夹到war存档的所有文件

所以我的pom.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.myhost</groupId>
    <artifactId>sailero</artifactId>
    <name>myapp</name>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>


  <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>3.7.0</version>
        </dependency>
<dependency>
            <groupId>com.host</groupId>
            <artifactId>some-lib</artifactId>
            <scope>system</scope>
            <version>0.0.1</version>
            <systemPath>${project.basedir}/lib/some-lib-0.0.1.jar</systemPath>
</dependency>


<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.2</version>
                <configuration>
                    <configuration>
                        <packagingIncludes>lib/*.jar</packagingIncludes>
                    </configuration>
                </configuration>
</plugin>

在控制台中:

代码语言:javascript
复制
mvn verify

但在战争中,不包括 some-lib-0.0.1.jar

\target\myapp-1.0-SNAPSHOT.war\WEB-INF\lib\ ->中,war中不存在"some-lib-0.0.1.jar",但所有其他依赖项都包括在内。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-05-17 20:50:20

Maven war插件自动将所有项目依赖项复制到WEB/lib中。因此,如果您的war需要依赖项,只需将相关的GAV放入该模块的dependency部分即可。

示例:在pom中,您依赖于:

代码语言:javascript
复制
    <dependency>
        <groupId>com.auth0</groupId>
        <artifactId>java-jwt</artifactId>
        <version>3.7.0</version>
    </dependency>

因此它将自动包含在您的WAR的WEB-INF/lib中。

现在,它在作用域system中的依赖项不是这样工作的,这是这里问题的根本原因。长话短说,这个问题已经在asked/answered这么多了。

总之,我建议摆脱系统依赖,并将其至少放在本地回购中,或者最好放在一些代理中,如Nexus或Artifactory。当然,我们欢迎您测试提供的链接中建议的其他方法。

票数 2
EN

Stack Overflow用户

发布于 2019-05-18 10:27:57

此修复问题:

代码语言:javascript
复制
<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.2</version>
                <configuration>
                    <webResources>
                        <resource>
                            <directory>lib</directory>
                            <targetPath>WEB-INF/lib</targetPath>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>
票数 1
EN

Stack Overflow用户

发布于 2019-05-18 10:52:28

以下是正确的方法:

首先在本地maven repo中安装“install 0.0.1.jar”:

mvn安装:install Dfile=myproject\lib\some 0.0.1 -DgroupId=com.host -DartifactId=some -Dversion=0.0.1 -Dpackaging=jar

pom.xml的第二名

代码语言:javascript
复制
   <dependency>
                   <groupId>com.host</groupId>
                   <artifactId>some-lib</artifactId>
                   <version>0.0.1</version>
               </dependency>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56189843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档