【问题标题】:Copy jars place in webapp/WEB-INF/lib to war under WEB-INF/lib using maven使用 maven 将 webapp/WEB-INF/lib 中的 jars 复制到 WEB-INF/lib 下的 war
【发布时间】:2018-02-24 12:51:18
【问题描述】:

我在 webapp/WEB-INF/lib/ 文件夹下添加了一个依赖项。

当我使用 maven 构建时,我想将它复制到 WEB-INF/lib 而不是 WEB-INF/classes/WEB-INF/lib 的战争中。我正在寻找使用 maven 本身来完成此操作。

我在 pom 文件中提到了打包作为战争。仍然没有复制依赖项。我是否缺少 pom 文件中的某些内容。 我已经复制了下面的pom:

<?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>****</groupId>
    <artifactId>*****</artifactId>
    <name>****</name>
    <description>*****</description>
    <parent>
        <groupId>****</groupId>
        <artifactId>***</artifactId>
        <version>17.6</version>
    </parent>
    <properties>
        <jbpm.version>6.3.0.Final</jbpm.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.jbpm</groupId>
            <artifactId>jbpm-test</artifactId>
            <version>${jbpm.version}</version>
        </dependency>
        <dependency>
            <groupId>Assets.CKAF.Bundles</groupId>
            <artifactId>csf-kafka</artifactId>
            <version>1.2-0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.10</artifactId>
            <version>0.10.0.0</version>
        </dependency>
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>com.opencsv</groupId>
            <artifactId>opencsv</artifactId>
            <version>4.0</version>
        </dependency>
        <dependency>
            <groupId>de.ruedigermoeller</groupId>
            <artifactId>fst</artifactId>
            <version>2.47</version>
        </dependency>
        <dependency>
            <groupId>org.apache.avro</groupId>
            <artifactId>avro</artifactId>
            <version>1.8.1</version>
        </dependency>
        <dependency>
            <groupId>io.confluent</groupId>
            <artifactId>kafka-avro-serializer</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>io.confluent</groupId>
            <artifactId>common-config</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>io.confluent</groupId>
            <artifactId>kafka-schema-registry-client</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.7</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-jaxb-annotations</artifactId>
            <version>2.8.5</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>jaxrs-api</artifactId>
            <version>3.0.7.Final</version>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-core</artifactId>
            <version>2.19.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-spring</artifactId>
            <version>2.19.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache-extras.camel-extra</groupId>
            <artifactId>camel-jboss6</artifactId>
            <version>2.18.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>2.2.11</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.2.11</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.2.11</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>jaxws-rt</artifactId>
            <version>2.2.10</version>
        </dependency>
    </dependencies>
    <packaging>war</packaging>
</project>

附上战争内容截图。

【问题讨论】:

  • 将依赖项添加到 webapp/WEB-INF/lib 是完全错误的。只需在你的 pom 中添加所需的依赖项,然后使用打包“war”就可以完成所有需要的事情......
  • 我已经提到打包为战争,现在删除了依赖项。但是lib文件夹仍然是空的。
  • 必须保留 pom 中的依赖项...您必须在纯命令行上调用 mvn clean package 然后查看目标文件夹中生成的 war 文件...
  • 您能否提供您使用 Maven 构建的 WAR 内容的打印屏幕?并告诉我们您正在使用什么 Maven 目标。
  • 我已经尝试过 mvn clean package 和 mvn clean install。两者似乎都没有帮助。

标签: maven maven-plugin


【解决方案1】:

您的 POM 看起来不错。而且由于您没有为依赖项指定任何“范围”,因此应用了“编译”的默认范围,这意味着一旦您执行“mvn clean install”,它应该将所有这些依赖项打包到“lib”文件夹中你的战争文件。

我看到的唯一另一件事是您在此 POM 中有一个父部分,如果您在父项目中有这些依赖项,并且如果它们的范围是“提供的”,那么您将不会在您的 war 文件的 lib 文件夹下看到它们。

【讨论】:

  • 是的,你是对的。我的父 pom 排除了影响包装的罐子。因此必须使用“combine.self =“override”来覆盖配置。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
  • 2011-06-11
  • 2011-03-26
  • 1970-01-01
  • 2016-03-12
  • 1970-01-01
  • 2015-09-18
相关资源
最近更新 更多