2012-03-04 59 views
1

我有一个由maven构建的EAR文件,目前我有一个commons项目,我想把它放在EAR \ lib中,所以我用了'bundleDir'标签的maven-ear-plugin,它工作正常现在我的commons.jar出现在lib文件夹和EAR根目录中。我如何告诉它只把它放在lib文件夹中?如何防止maven复制EAR文件中的jar文件?

我POM:

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-ear-plugin</artifactId> 
      <configuration> 
       <outputDirectory>../../outputs/java</outputDirectory> 
       <version>5</version> 
       <modules> 
        <jarModule> 
         <groupId>com.sample.common</groupId> 
         <artifactId>common</artifactId> 
         <includeInApplicationXml> 
          true 
         </includeInApplicationXml> 
         <bundleDir>/lib</bundleDir> 
        </jarModule> 
        ... 
       </modules> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>ear</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

这里是依赖定义:

<dependency> 
     <groupId>com.sample.common</groupId> 
     <artifactId>common</artifactId> 
     <version>1.0</version> 
     <scope>provided</scope> 
    </dependency> 
+0

我只想指出,这个问题的标题看起来很奇怪,当脱离上下文。 :) – 2012-03-04 15:44:51

+0

我知道标题有点奇怪,但我有一个非常漫长的一天:) – Tomer 2012-03-04 16:17:09

+0

你可以发布你的pom.xml文件中的commons.jar的依赖关系定义,谢谢。 – hovanessyan 2012-03-04 16:59:56

回答

1

如果你的jar文件是不是EJB你可以简单地把它放到耳朵依赖没有定义成maven-耳插件。否则,尝试设置提供给依赖列表中的jar的作用域。这可能有帮助。

+0

该jar是一个EJB jar,我用提供的范围尝试过,但不幸的是这并没有帮助。 – Tomer 2012-03-05 10:54:13

+1

也许你还有一些使用com.sample.common的耳朵依赖列表中的另一个模块:通用范围编译或运行库。在这种情况下,您在ear依赖项列表中使用的所有模块都依赖com.sample.common:common应该也为com.sample.common提供了范围:common。 – dyrkin 2012-03-05 11:22:53

+0

好点,但我已经想到了这一点,并更新了对该罐子的所有引用,仍然没有运气。 – Tomer 2012-03-05 12:26:36

相关问题