2013-09-26 226 views
0

我有不同的獨立maven項目並希望使用單個pom構建它。所以我用下面的POMMaven使用root pom構建子項目

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>a.b</groupId> 
<artifactId>my-sdk</artifactId> 
<name>my-sdk</name> 
<version>1.0</version> 
<packaging>pom</packaging> 
<description>Generating SDK</description> 

<modules> 
    <module>project1</module> 
    <module>project2</module> 
    <module>project3</module> 
</modules> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.9</version> 
      <executions> 
       <execution> 
        <id>process-sources</id> 
        <phase>process-classes</phase> 
        <goals> 
         <goal>jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>process-classes</phase> 
        <configuration> 
         <tasks> 
          <ant antfile="build.xml" target="init" /> 
         </tasks> 
        </configuration> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

<repositories> 
    <repository> 
     <id>jboss-repo</id> 
     <url>http://repository.jboss.org/maven2</url> 
    </repository> 
</repositories> 

我有以下問題: -

  1. 的Javadoc沒有產生,所以在這裏我做錯了。如果我運行「mvn javadoc:javadoc package」命令,它會生成java文檔。但是如果我運行「mvn package」,它不會。

  2. 在project2中有裝配插件來生成fat jar,它會生成jar project2但是不能生成fat jar。如果我獨立構建project2,它會成功生成fat jar。

Follwing部分是從項目2 POM生成脂肪的罐子,如果我獨立

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
       <appendAssemblyId>false</appendAssemblyId> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
      </configuration> 
      <executions> 
       <execution> 
        <id>make-assembly</id> 
        <phase>package</phase> 
        <configuration> 
         <archive> 
          <manifest> 
           <mainClass>[MAIN CLASS]</mainClass> 
          </manifest> 
          <manifestEntries> 
           <Class-Path>.</Class-Path> 
          </manifestEntries> 
         </archive> 
        </configuration> 
        <goals> 
         <goal>assembly</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

運行構建任何建議其成功的作品。

回答

0

我想說同時檢查的文件你的問題;-)

的javadochttp://maven.apache.org/plugins/maven-javadoc-plugin/plugin-info.html

的javadoc:罐子的javadoc:javadoc的不應該被用於一個聚合項目,使用的javadoc:總或(在你的情況下)的javadoc:總-JAR

組件http://maven.apache.org/plugins/maven-assembly-plugin/assembly-mojo.html

第一,組件:組件已過時,第二,它應該只在命令行上使用。我猜想使用目標單人會有所幫助。

+0

javadoc:聚合爲所有項目在單個文件夾中生成javadoc,但我想爲使用root pom的個人生成javadoc,但是可以這樣做。 –