Java Maven:如何从web项目源代码中排除所有第三方jar?
目前,我们在Jboss EAP 6.1服务器上部署了一个基于JSF的web项目。它是一个多模块项目,在web porject/lib文件夹中添加了大量第三方JAR 当我们运行Java Maven:如何从web项目源代码中排除所有第三方jar?,java,maven,jboss,maven-2,jboss6.x,Java,Maven,Jboss,Maven 2,Jboss6.x,目前,我们在Jboss EAP 6.1服务器上部署了一个基于JSF的web项目。它是一个多模块项目,在web porject/lib文件夹中添加了大量第三方JAR 当我们运行mvn install时,它创建了war文件,我们在Jboss中部署了这个war文件,但是它的大小太大了,大约300MB。因此,有时我们很难在服务器中部署war,如果代码中有任何单行更改,那么需要花时间将项目上传到服务器中 我们希望我们应该分离出jar文件(第三方)和源代码。所以war大小应该更小,所有第三方jar应该从源代
mvn install
时,它创建了war文件,我们在Jboss中部署了这个war文件,但是它的大小太大了,大约300MB。因此,有时我们很难在服务器中部署war,如果代码中有任何单行更改,那么需要花时间将项目上传到服务器中
我们希望我们应该分离出jar文件(第三方)和源代码。所以war大小应该更小,所有第三方jar应该从源代码中分离出来
这个项目是基于maven的项目,所以所有的依赖项都添加在pom.xml
文件中,所以对于开发人员来说,我们不应该删除pom文件条目
有人能提出处理这种情况的最佳方法吗 你应该分两步来做。 首先,从打包中排除依赖项,并仅在编译阶段使用它们:
<dependencies>
<!-- declare the dependency to be set as optional -->
<dependency>
<groupId>sample.ProjectA</groupId>
<artifactId>Project-A</artifactId>
<version>1.0</version>
<scope>compile</scope>
<optional>true</optional> <!-- value will be true or false only -->
</dependency>
</dependencies>
示例项目a
maven插件:
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
maven依赖插件
安装
复制依赖项
${project.build.directory}/lib
第一步是可以的,但是把jar放到lib文件夹怎么样,你的意思是我必须手动放置它吗?比如从一个位置复制粘贴到另一个位置,然后如果我们在pom.xml文件中做任何更改,比如添加/删除依赖项,我们必须再次手动执行所有操作?我想JAR应该在JBOSS_HOME/common/libjboss-eap-6.1中,没有这个文件夹结构,那么第二件事就是我们必须手动执行的所有操作?然后我使用那个lib文件夹好的,我问的第二个问题和pom.xml文件中的一些更改如何,然后再次手动从lib文件夹中包括/排除jar?