Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven:如何从web项目源代码中排除所有第三方jar?_Java_Maven_Jboss_Maven 2_Jboss6.x - Fatal编程技术网

Java Maven:如何从web项目源代码中排除所有第三方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应该从源代

目前,我们在Jboss EAP 6.1服务器上部署了一个基于JSF的web项目。它是一个多模块项目,在web porject/lib文件夹中添加了大量第三方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?