2013-10-15 24 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> 
相关问题