2016-03-11 54 views
0

目前,我們有我們在的Jboss EAP用大量的內部網絡,項目/ lib文件夾中添加第三方jar文件的部署6.1 server.Its多模塊項目基於JSF Web項目。Maven:如何從Web項目源代碼中排除所有第三方jar?

當我們運行mvn install它創建war文件,我們在Jboss中部署這個war文件,但是它的大小太大,大約300MB。所以有時候我們很難部署在服務器上,如果任何一行代碼改變它的上傳時間在服務器上傳。

我們希望我們應該分離出jar文件(第三方)和源代碼。所以戰爭規模應該更小,所有第三方jar應該從源代碼中分離出來。

該項目是基於Maven的項目,所以所有的依賴在pom.xml文件添加所以對於開發商預期的,我們不應該刪除POM文件條目。

有人可以請建議我應該是處理這種情況最好的方法?

回答

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> 

在第二步中,把需要運行在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> 
+0

第一步是確定的,但怎麼樣在lib文件夾中把罐子,你的意思我必須手動把它?像複製粘貼從一個位置到另一個位置,然後如果我們將在pom.xml文件中像添加/刪除依賴項那樣做任何更改,我們必須再次手動執行所有操作? –

+0

我想瓶子應該在JBOSS_HOME/common/lib中 – user987339

+0

jboss-eap-6.1沒有這個文件夾結構然後第二件事我們必須手動做? –

相關問題