2014-05-10 119 views

回答

0

我找到了解决办法::)

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <executions> 
      <execution> 
       <id>make-a-jar</id> 
       <phase>compile</phase> 
       <goals> 
        <goal>jar</goal> 
       </goals> 
      </execution> 
     </executions> 
    </plugin> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-install-plugin</artifactId> 
     <executions> 
      <execution> 
       <phase>install</phase> 
       <goals> 
        <goal>install-file</goal> 
       </goals> 
       <configuration> 
        <packaging>jar</packaging> 
        <artifactId>${project.artifactId}</artifactId> 
        <groupId>${project.groupId}</groupId> 
        <version>${project.version}</version> 
        <file> 
         ${project.build.directory}/${project.artifactId}-${project.version}.jar 
        </file> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
+0

我会说你发现了一个黑客,但不是一个解决方案;-) – khmarbaise

+0

我同意khmarbaise。使用war插件的'attachClasses'选项更清晰。默认情况下,它还附加工件的类(类似于sources和javadoc),以清除它不是模块的主要输出。 当然,最好创建一个战争项目和其他项目共同的新模块。全部取决于具体情况。 – Mikezx6r

2

我建议去一个不同的方式,并使用maven-war-plugin which can produce a separate artifact for the classes它可以像下面这样使用:

<dependency> 
    <groupId>myGroup</groupId> 
    <artifactId>myArtifact</artifactId> 
    <version>myVersion</myVersion> 
    <classifier>classes</classifier> 
</dependency> 

这可能是通过在战争模块中使用以下配置实现:

<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
     <attachClasses>true</attachClasses> 
     </configuration> 
    </plugin> 
    ... 
    </plugins> 
相关问题