2013-10-15 19 views
0

我有一個多模塊Web應用程序項目,像這樣:如何將具有docletArtifact的多模塊Maven項目部署爲自引用依賴項?

家長

  1. 網絡基礎
  2. 權威性
  3. DOC
  4. ADFS
  5. 試驗場

Test-Si te使用所有其他模塊就好了。

doc結合了JavaDocs和掛載的Web頁面信息來構建SiteMap。因爲它解析爲我的SiteMap生成的JavaDocs 它也是一個Doclet Jar,因爲Doclet是分析和存儲站點地圖信息的最簡單方法。

試驗場的pom.xml我有

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <version>2.9</version> 
    <executuions> 
    <exceution> 
     <id>build-siteMap-Descriptions</id> 
     <phase>process-classes</phase> 
     <goals> 
     <goal>javadoc</goal> 
     </goals> 
     <configuration> 
     <doclet> 
      us.ak.state.revenue.cssd.utils.SiteMapDoclet 
     </doclet> 
     <docletPath> 
      \;.;${project.build.outputDirectory}; 
     </docletPath> 
     <docletArtifacts> 
      <docletArtifact> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.6.2</version> 
     </docletArtifact> 
     <docletArtifact> 
      <groupId>us.ak.state.revenue.cssd</groupId> 
      <artifactId>doc</artifactId> 
      <version>${project.version}</version> <!-- problematic section --> 
     </docletArtifact> 
     </docletArtifacts> 

     <bootclasspath> 
     \;.; 
     ${bootClassPath}; 
     ${env.CLASSPATH}; 
     </bootclasspath> 

     <destDir>SiteMap</destDir> 

     <author>false</author> 
     <!-- don't print the packages/classes it's running on --> 
     <quiet>true</quiet> 
     <debug>true</debug> <!-- save options --> 
     <useStandardDocletOptions>false</useStandardDocletOptions> 

     <additionalparam> 
      -sitemap us.ak.state.revenue.cssd.webBaseTest.Pages.SiteMap 
     </additionalparam> 

     <name>SiteMapDoclet</name> 
     <description>Page Descriptions for SiteMap generation</description> 
     </configuration> 
    </execution> 
    </exectuions> 
</plugin> 

所以,當我運行mvn release:prepare它要解決的快照依賴關係,然後它用錯誤:

[INFO] An error has occurred in SiteMapDoclet report generation: Unable to find artifact:groupId = 'us.ak.state.revenue.cssd' 
[INFO] artifactId = 'doc' 
[INFO] version = '1.5.8' 
[INFO] 
[INFO] Unable to download the artifact from any repository 

所以,我該怎麼辦在部署我的項目時正確引用我的Doclet?

+1

看看[這裏](http://stackoverflow.com/questions/14989871/how-can-i-compile-and-run-my-custom -doclet級功能於我的項目)。 – khmarbaise

回答

0

@khmabaise是正確的引用我的老問題:How can I compile and run my Custom Doclet class in my project?

原來的解決方案,而略顯凌亂的是DOC移動到docletPath

<docletPath> 
    \;.;${project.build.outputDirectory}; 
    ${project.parent.basedir}/doc/target/doc-${project.version}.jar; 
    ${m2Repository}/us/ak/state/revenue/cssd/doc/${project.version}/doc-${project.version}.jar; 
</docletPath> 

,然後在添加DOC的依賴關係直接到<docletArtifact>

對於記錄器d ${m2Repository}在我的我的勁歌性質定義爲

<m2Repository>${env.USERPROFILE}/.m2/repository</m2Repository> 
相關問題