2012-07-04 25 views
3

我的問題來自想要運行javadoc:聚合的所有項目,除了一個,我想運行javadoc:javadoc(因爲這一個項目有一個子模塊,需要在其maven-javadoc-plugin中使用sourcepath設置配置,因爲它已經生成了代碼以及源代碼)。是否可以使用變量定義maven目標?

據我所知,有一個錯誤,這意味着如果您運行聚合目標,源路徑設置將被忽略。我試了一下自己,也沒有工作,我發現:http://jira.codehaus.org/browse/MJAVADOC-311

我有一個定義的插件配置父POM:

<properties> 
    <javadoc-goal>aggregate</javadoc-goal> 
<properties> 

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>generate-javadoc</id> 
     <phase>package</phase> 
     <goals> 
     <goal>${javadoc-goal}</goal> 
     </goals> 
     <configuration> 
     ... 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

然後,我有幾個項目,其中繼承此項目。一,我需要運行的Javadoc,而不是總將定義:

<javadoc-goal>javadoc</javadoc-goal> 

及其子模塊將定義其源路徑:

<reporting> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-javadoc-plugin</artifactId> 
     <configuration> 
      <sourcepath>${basedir}/src/main/java:${basedir}/src/generated/java</sourcepath> 
     </configuration> 

     ... 
    </plugin> 
    </plugins> 
</reporting> 

我猜測的答案,我的問題是沒有,因爲當我嘗試並安裝我的父POM它看起來是處理變量爲文字,我發現奇怪的,因爲你可以用它們在其他許多地方:

[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] '${javadoc-goal}' was specified in an execution, but not found in the plugin 

如果我做不到這,解決這個問題的任何想法?

+0

好了,我的除了父POM的插件目標定義一切就迎刃而解了這一點,那麼在項目中定義POM合適的目標(或的javadoc合計)。我應該刪除這個問題,因爲它不再需要答案? –

+0

繼續回答你自己的問題;它[鼓勵](http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/)。 – user944849

回答

0

這是我想出了一個解決方案:

配置在父POM javadoc的插件,但不提供目標:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>generate-javadoc</id> 
     <phase>package</phase> 
     <configuration> 
     ... 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

的每個項目POM提供的目標:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>generate-javadoc</id> 
     <phase>package</phase> 
     <goals> 
     <goal>javadoc</goal> <!-- or aggregate for those projects that require it --> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 
相關問題