2014-10-20 27 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;(

我希望我会找到一个干净的解决方案..