2016-09-16 54 views
0

我想构建简单的JAR来部署到Wildfly,但每当我尝试部署大量的ClassNotFoundExceptions时都会抛出。 只有依赖我拥有的是:我使用的JARMaven生成的JAR文件不能部署到Wildfly

<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-elasticsearch</artifactId> 
    <version>2.0.2.RELEASE</version> 
</dependency> 

打造的是:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <version>2.4.3</version> 
    <executions> 
    <execution> 
     <phase>package</phase> 
     <goals> 
     <goal>shade</goal> 
     </goals> 
    </execution> 
    </executions> 
    <configuration> 
    <createDependencyReducedPom>false</createDependencyReducedPom> 
    </configuration> 
</plugin> 

在另一方面,当我建立在同一个项目的WAR有:

<plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.3</version> 
    <configuration> 
    <archive> 
    </archive> 
    <failOnMissingWebXml>false</failOnMissingWebXml> 
    <webResources> 
     <resource> 
     <directory>target/classes/META-INF</directory> 
     <targetPath>WEB-INF</targetPath> 
     <includes> 
      <include>jboss-web.xml</include> 
      <include>jboss-deployment-structure.xml</include> 
     </includes> 
     </resource> 
    </webResources> 
    </configuration> 
</plugin> 

一切工作正常。 如果我没有弄错,这个问题是由于类加载引起的。 什么原因导致了课堂上的这种差异,我能做些什么来避免它?

+0

CNF异常是否引用_spring-data-elasticsearch_依赖关系? – aribeiro

回答

0

您应该部署由阴影插件生成的jar。 完成全新安装后,您将获得两个罐子。一个是正​​常的jar,只有源代码的已编译类和另一个jar(它将由阴影插件创建)将具有已编译的类以及来自所有依赖项的类。这是你应该部署到你的服务器的jar。由于这个jar包含所有依赖jar的类,所以你不会得到任何ClassNotFoundException。

+0

谢谢你的回复。事实上,两个罐子是创建的,一个是原始前缀,另一个是所有库。这是我试图部署的libaries,它有ClassNotFoundExceptions – Sarpy