2014-05-10 148 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> 
相關問題