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

Jar maven依赖项从WEB-INF/lib中消失

翟淇
2023-03-14

我正在开发这个maven web(java)应用程序(lwl-module),并通过Eclipse将其部署到JBoss7。

当我在JBoss7下扩展web应用程序的节点时,它下面有两个jar文件,就像它上面的那个一样(bhr-module):

但在我对其中一个jar文件(commons-web)进行更改并重新安装后,该jar文件就从应用程序的节点中消失了。当我重新部署我的web应用程序时,JBoss抱怨它找不到它的类。

我的JAR的pom.xml如下所示:

<modelVersion>4.0.0</modelVersion>
<groupId>nl.zin</groupId>
<artifactId>commons-web</artifactId>
<version>1.0.6-SNAPSHOT</version>
<name>ZiN Commons Web Utilities</name>

以及web应用程序pom.xml中的依赖项声明

    <dependency>
        <groupId>nl.zin</groupId>
        <artifactId>commons-web</artifactId>
        <version>1.0.6-SNAPSHOT</version>
    </dependency>

这两个项目都是我的eclipse工作区中的项目。我已经试着从我的jar和war中删除“-快照”,但没有成功。

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>nl.cvz.azrportaal</groupId>
    <artifactId>lwl-module</artifactId>
    <version>1.4-SNAPSHOT</version>
    <name>CVZ LWL Module</name>
    <packaging>war</packaging>
    <properties>
        <java.version>1.7</java.version>
        <javax.servlet.version>3.1.0</javax.servlet.version>
        <javax.jsp.version>2.3.0</javax.jsp.version>
        <javax.jstl.version>1.2</javax.jstl.version>
        <!-- Spring 4.0 proven not compatible with Spring Data. -->
        <org.spring.version>3.2.8.RELEASE</org.spring.version>
        <org.spring.jdbc.version>3.2.8.RELEASE</org.spring.jdbc.version>
        <org.slf4j-version>1.6.6</org.slf4j-version>
        <!-- ZiN artifacts -->
        <nl.zin.commons-web.version>1.0.6-SNAPSHOT</nl.zin.commons-web.version>
    </properties>

<dependencies>
    <!-- ZiN -->
    <dependency>
        <groupId>nl.zin</groupId>
        <artifactId>commons-web</artifactId>
        <version>${nl.zin.commons-web.version}</version>
    </dependency>
    <!-- Log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.15</version>
        <exclusions>
            <exclusion>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
            </exclusion>
            <exclusion>
                <groupId>javax.jms</groupId>
                <artifactId>jms</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jdmk</groupId>
                <artifactId>jmxtools</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jmx</groupId>
                <artifactId>jmxri</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- Java EE -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>${javax.servlet.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>${javax.jsp.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>${javax.jstl.version}</version>
    </dependency>

    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${org.spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${org.spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${org.spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${org.spring.jdbc.version}</version>
    </dependency>
    <!-- DisplayTag -->
    <dependency>
        <groupId>displaytag</groupId>
        <artifactId>displaytag</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>2.2</version>
    </dependency>
    <!-- CXF -->
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>2.2.6</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-javamail_1.4_spec</artifactId>
            </exclusion>
            <exclusion>
                <artifactId>saaj-api</artifactId>
                <groupId>javax.xml.soap</groupId>
            </exclusion>
            <exclusion>
                <artifactId>saaj-impl</artifactId>
                <groupId>com.sun.xml.messaging.saaj</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>2.2.6</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http-jetty</artifactId>
        <version>2.2.6</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-ws-security</artifactId>
        <version>2.2.6</version>
        <exclusions>
            <exclusion>
                <!-- Let op deze library mag niet mee verpakt worden maar moet in de 
                    /server/cvz/lib directory van JBoss geplaatst worden -->
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk15</artifactId>
            </exclusion>
            <exclusion>
                <groupId>xalan</groupId>
                <artifactId>xalan</artifactId>
            </exclusion>
            <exclusion>
                <artifactId>saaj-api</artifactId>
                <groupId>javax.xml.soap</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- 
    <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>2.10.0</version>
    </dependency>
     -->
    <!-- Commons -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-io</artifactId>
        <version>1.3.2</version>
    </dependency>
    <!-- Test -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.7</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${org.spring.version}</version>
        <scope>test</scope>
    </dependency>

</dependencies>
<build>
    <finalName>landwachtlijstmodule</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-eclipse-plugin</artifactId>
            <version>2.9</version>
            <configuration>
                <additionalProjectnatures>
                    <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                </additionalProjectnatures>
                <additionalBuildcommands>
                    <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
                </additionalBuildcommands>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
            </configuration>
        </plugin>           
        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>2.7.11</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <phase>generate-sources</phase>
                    <configuration>
                        <sourceRoot>${basedir}/src/main/generated</sourceRoot>
                        <defaultOptions>
                            <frontEnd>jaxws21</frontEnd>
                        </defaultOptions>
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>src/main/resources/AZRKetenpartijService.wsdl</wsdl>
                                <extraargs>
                                    <extraarg>-client</extraarg>
                                </extraargs>
                            </wsdlOption>
                            <wsdlOption>
                                <wsdl>src/main/resources/LandelijkeWachtlijst.wsdl</wsdl>
                                <extraargs>
                                    <extraarg>-client</extraarg>
                                </extraargs>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <extensions>
        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-webdav-jackrabbit</artifactId>
            <version>1.0-beta-7</version>
        </extension>
    </extensions>
</build>

共有1个答案

慕通
2023-03-14

显然,我的web应用程序下的那些节点是我的应用程序所依赖的web片段。

正如我在这里所写的,我的Web片段(commons-web)出现了Java EE配置问题。

这个错误没有导致maven构建失败,但是Eclipse没有将我的项目识别为JBoss的web片段。

 类似资料:
  • 问题内容: 我需要在Maven生成的WAR 文件夹中具有JAR依赖关系,而不是,这是它在存储库中的名称。实现这一目标的最佳方法是什么? 在我的POM中,我有: 我希望它以出现在文件夹中。 这是我无法控制的对Maven Central的外部依赖。同样,我也不想强迫使用此方法的所有人将依赖关系重新部署到其本地存储库。 是否有我可以利用的Maven插件,还是应该开始自己编写代码? 问题答案: 您可以使用

  • 我有一个产生战争的网络项目。war添加了一个jar(我的另一个项目发布在外部repo上)作为编译依赖项。这个jar有自己的编译依赖项,它列在jar的pom文件中,也列在项目的构建脚本中(这是一个Gradle项目)。我希望将jar及其所有依赖项添加到WAR的WEB-INF/lib文件夹中。然而,当我用Gradle构建web项目时,只添加了直接依赖项,而不添加传递依赖项。 下面是我的web项目的构建脚

  • 添加Lib库依赖关系有两种方式: 非管理依赖方式,是通过将依赖的Jar包放到项目的lib目录 管理依赖方式,是在工程构建配置中配置依赖关系,sbt会自动从托管代码库中下载依赖库 非管理依赖方式 很多人用管理依赖的方式替代非管理方式,其实非管理方式用起来非常方便。非管理依赖方式的工作原理就是将jar包放到lib目录下,sbt会自动的将其添加到classpath中。也可以将一些测试依赖放到lib目录下

  • 我在webapp/WEB-INF/lib/文件夹下添加了一个依赖项。 当我使用maven构建时,我希望在war中将它复制到WEB-INF/lib,而不是WEB-INF/classes/WEB-INF/lib。我正在寻找这是使用maven本身来完成的。 我已经在pom文件中提到了打包作为战争,但是依赖项没有被复制。我是不是在pom文件里漏掉了什么。我已经复制了下面的pom: 附上战争内容截图。

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

  • 问题内容: 这个问题是关于Eclipse开发的,我试图在Eclipse中创建一个Web应用程序,问题是我没有将依赖项jar保存到已部署的归档文件中。 我创建了一个新的动态Web项目,并将其链接到另一个Java项目。Java项目引用了一些第3方jar(例如Spring jar),但是由于某些原因,在发布Web项目时,我在战争的lib目录中仅得到Java项目jar,而没有Java项目依赖项(例如Spr