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

时间:2015-02-16 12:05:01

标签: java spring maven deployment jboss7.x

我正在研究这个maven web(java)应用程序(lwl-module),并通过eclipse将它部署到JBoss 7。

当我在JBoss 7下扩展Web应用程序的节点时,它下面有2个jar文件,就像它上面的那个(bhr-module):

enter image description here

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

我在jar文件和我的Web应用程序上运行mvn install,从JBoss中删除了模块并再次添加,但jar文件未添加到我的节点或复制到我的Web应用程序的WEB-INF / lib目录。

我的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工作区中的项目。而且我已经尝试从我的罐子和战争中删除“-SNAPSHOT”,但没有运气。

另一个问题是,为什么JBoss / Eclipse只会在我的Web应用程序中显示这些2个罐子,因为它们依赖于许多其他罐子,这些罐子也会被复制到他们的WEB-INF / lib目录中?

这是我的网络应用程序的完整pom.xml:

<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>

3 个答案:

答案 0 :(得分:1)

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

我的Web片段(commons-web)存在Java EE配置问题,正如我写的here

此错误未导致maven构建失败,但Eclipse未将我的项目识别为JBoss的Web片段。

答案 1 :(得分:0)

您需要从eclipse市场安装JBoss maven插件并创建一个新的maven项目并将您的代码添加到应用程序中。

完成后,将项目添加到在eclipse中导入的jboss服务器上并检查Build Actomatically。

每当您更改文件时,应用程序都需要发布到最新jar文件和更新的类文件的服务器。

作为maven依赖项提到的所有jar都将在eclipse中显示。

希望这有帮助。

答案 2 :(得分:-1)

您还可以尝试 mvn clean compile install