当前位置: 首页 > 知识库问答 >
问题:

使用maven将webapp/WEB-INF/lib中的JAR复制到web-INF/lib下的war

公良玺
2023-03-14

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

当我使用maven构建时,我希望在war中将它复制到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>

附上战争内容截图。

共有1个答案

弘靖琪
2023-03-14

你的绒球看起来不错。由于您没有为依赖项指定任何“范围”,因此将应用默认范围“Compile”,这意味着一旦您执行了“MVN clean Install”,它应该将所有这些依赖项打包到war文件的“lib”文件夹中。

我看到的唯一的另一件事是,在这个POM中有一个父节,如果在父项目中有这些依赖项,并且如果它们的作用域是“提供的”,那么在war文件的lib文件夹下就看不到它们。

 类似资料:
  • 同时,我也想坚持使用动态Web项目或将其改为Maven项目。

  • 我正在开发这个maven web(java)应用程序(lwl-module),并通过Eclipse将其部署到JBoss7。 当我在JBoss7下扩展web应用程序的节点时,它下面有两个jar文件,就像它上面的那个一样(bhr-module): 但在我对其中一个jar文件(commons-web)进行更改并重新安装后,该jar文件就从应用程序的节点中消失了。当我重新部署我的web应用程序时,JBos

  • 我生成了一个WAR文件,在它的WEB-INF/lib文件夹中有一个名为xyz.jar的jar。此jar在构建过程中作为依赖项生成。现在我需要把这个罐子复制到一个文件夹里,说abc里面的战争。我怎样才能做到这一点?我尝试使用maven-resources-plugin的copy-resources,但它似乎不起作用,因为复制将在war构建之前完成。但是这个jar只在构建过程中生成。谢了。

  • 如何才能缓解这种情况?

  • 根据这个问题,我创建了一个实现Catalina LifecycleListener类的类。 如何在Tomcat启动时运行脚本? 当我将JAR文件放置在webapps/root/web-inf/lib中时,Tomcat启动失败,出现类未找到的异常: java.lang.ClassNotFoundException:Net.Company.Tomcat.StartupEventHookListener

  • 我是新手。与Gradle我有多个项目构建文件。大多数项目构建文件都经过了适当的配置,工作良好,并生成了正确的输出。我正在尝试将其中一个项目从ANT build转换为Gradle build。我能够编译Java文件,并且能够生成WAR归档。 我在生成的WAR文件中注意到的一件事是,WEB-INF/lib目录中包含了额外的JAR文件。当我从ANT build system构建项目时,只有很少的jar文