目前我们有一个基于JSF的Web项目,我们正在Jboss EAP 6.1服务器上部署。它是一个多模块项目,在web-porject / lib文件夹中添加了大量第三方jar。
当我们运行mvn install
时,它会创建war文件,我们在Jboss中部署这个war文件,但发现它的大小太大了300MB左右。所以有时我们很难在服务器中部署战争,如果有任何一行代码更改需要花时间在服务器上传项目。
我们希望我们应该将jar文件(第三方)和源代码分开。因此战争大小应该更少,并且所有第三方jar都应该从源代码中分离出来。
这个项目是基于maven的项目所以所有依赖项都添加在pom.xml
文件中,因此对于开发人员来说,我们不应该删除pom文件条目。
有人可以建议处理这种情况的最佳方法是什么?
答案 0 :(得分:0)
你应该分两步完成。 首先从包装中排除依赖关系,并仅将它们用于编译阶段:
<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>
在第二步中,将所有运行应用程序所需的jar放在jboss JBOSS_HOME / lib文件夹中。
您可以使用Copying project dependencies 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>