0

我有一个像这样的多模块 Web 应用程序项目:

家长

  1. 网络基础
  2. 授权
  3. 文档
  4. ADFS
  5. 测试站点

测试站点使用所有其他模块就好了。

doc结合 JavaDocs 和装载的网页信息来构建一个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?

4

1 回答 1

0

@khmabaise 引用我的旧问题是正确的:如何在我的项目中编译和运行我的自定义 Doclet 类?

结果解决方案虽然有点混乱,但将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>

因为记录${m2Repository}在我的 poms 属性中定义为

<m2Repository>${env.USERPROFILE}/.m2/repository</m2Repository>
于 2013-10-23T21:18:52.913 回答