Maven:如何从Web项目源代码中排除所有第三方jar?

时间:2016-03-11 10:36:17

标签: java maven jboss maven-2 jboss6.x

目前我们有一个基于JSF的Web项目,我们正在Jboss EAP 6.1服务器上部署。它是一个多模块项目,在web-porject / lib文件夹中添加了大量第三方jar。

当我们运行mvn install时,它会创建war文件,我们在Jboss中部署这个war文件,但发现它的大小太大了300MB左右。所以有时我们很难在服务器中部署战争,如果有任何一行代码更改需要花时间在服务器上传项目。

我们希望我们应该将jar文件(第三方)和源代码分开。因此战争大小应该更少,并且所有第三方jar都应该从源代码中分离出来。

这个项目是基于maven的项目所以所有依赖项都添加在pom.xml文件中,因此对于开发人员来说,我们不应该删除pom文件条目。

有人可以建议处理这种情况的最佳方法是什么?

1 个答案:

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