2014-10-20 79 views
0

我有2個模塊的maven prj:一個JAR和一個依賴於JAR的WAR。如何將戰爭的罐子移動(或複製)到另一個戰爭的文件夾?

MAVEN INSTALL後我有一個經典的WEB-INF/lib文件夾,其中包含所有jar依賴項(包括第一個模塊的JAR)。

我需要將第一個模塊的JAR移動到另一個文件夾,例如WEB-INF/resources。 盡我所能?

我能夠移動jar但只在目標內,WAR保持不變。 我用下面的插件:

... 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.9</version> 
      <executions> 
       <execution> 
        <id>copy-installed</id> 
        <phase>install</phase> 
        <goals> 
         <goal>copy</goal> 
        </goals> 
        <configuration> 
         <artifactItems> 
          <artifactItem> 
           <groupId>groupId</groupId> 
           <artifactId>artifactId</artifactId> 
           <version>1.0</version> 
           <type>jar</type> 
           <overWrite>false</overWrite> 
           <outputDirectory>${project.build.directory}/.../WEB-INF/services</outputDirectory> 
          </artifactItem> 
         </artifactItems> 
         <outputDirectory>${project.build.directory}/.../WEB-INF/services</outputDirectory> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build>  
+0

我認爲你必須創建一個新的模塊,並同時做MVN清潔安裝 – 2014-10-21 11:07:46

回答

0

也許這將幫助:

<project.warSourceDirectory>${basedir}/src/main/webapp</project.warSourceDirectory> 
... 

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.9</version> 
    <executions> 
     <execution> 
      <id>copy-installed</id> 
      <phase>install</phase> 
      <goals> 
       <goal>copy</goal> 
      </goals> 
      <configuration> 
       <artifactItems> 
        <artifactItem> 
         <groupId>groupId</groupId> 
         <artifactId>artifactId</artifactId> 
         <version>1.0</version> 
         <type>jar</type> 
         <overWrite>false</overWrite> 
         <outputDirectory>${project.warSourceDirectory}/WEB-INF/services</outputDirectory> 
        </artifactItem> 
       </artifactItems> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
+0

感謝您的回答 $ {project.warSourceDirectory}不適用於我,它會生成一個名爲$ {project.warSourceDirectory}的文件夾到主prj目錄中:D – pagurix 2014-10-21 08:50:12

+0

@pagurix對不起,已更新答案 – Multisync 2014-10-21 11:28:28

+0

沒有, 我使用$ {project.build.directory}來代替$ {project.warSourceDirectory}, insall在TARGET下與dam JAR內部生成一個WEB-INF /服務folter,(這不是必需的,但是很重要)。但WAR創建不包含它。 我認爲安裝後的PLUGIN工作,在WAR生成後它會移動JAR,我不知道如何告訴他以前這樣做。 副本應該在JAR(安裝模塊1)的生成和WAR(安裝模塊2)的生成之間發生。 – pagurix 2014-10-21 12:36:11

0

現在,我投降了。

我無法將此JAR從WEB-INF/lib移動到EAR的WEB-INF /服務。 我使用的解決方法是說MODULE1將它的JAR複製到MODULE2的WEB-INF /服務中。因此,JAR將出現在源文件夾的WEB-INF /服務中,存在於TARGET文件夾的WEB-INF /服務中,最後出現在EAR的WEB-INF /服務中。

我使用:

<plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>2.5</version> 
      <configuration> 
       <outputDirectory>..MOSULE1/src/main/webbapp/WEB-INF/services</outputDirectory> 
      </configuration> 
     </plugin> 
    </plugins> 

成MODULE1 POM。

我不得不放棄,使模塊1獨立的模塊2;(

我希望我會找到一個乾淨的解決方案..