使用Maven Javadoc插件生成多个TLD& TLDGen

时间:2010-12-02 17:24:11

标签: maven tld

我有一个taglib项目,我使用TLDGen库来帮助我的类中的注释构建我的TLD文件。然后我把它插入到Maven JavaDoc插件中,让它通过javadoc:javadoc Maven目标构建TLD文件。处理此问题的Pom部分如下:

<build>
    ...
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.7</version>
            <configuration>
                <doclet>org.tldgen.TldDoclet</doclet>
                <docletArtifact>
                    <groupId>com.google.code.tldgen</groupId>
                    <artifactId>tldgen-all</artifactId>
                    <version>1.0.0</version>
                </docletArtifact>
                <show>private</show>
                <additionalparam>-name test
                    -uri "http://www.mycompany.com/tags/wibble"
                    -tldFile ..\..\..\src\main\resources\META-INF\w.tld
                </additionalparam>
                <useStandardDocletOptions>true</useStandardDocletOptions>
                <author>false</author>
                <encoding>utf-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

这非常有效。麻烦的是我知道要从这个项目中创建2个TLD。我可以在addtionalparam元素中传递-subpackages属性,这样我就可以生成一个我想要的TLD。

但是那时我只能有一个配置元素。我已经尝试将配置移动到我的pom中的报告部分,使用两个报告集来查看是否有帮助,但没有运气。

有没有人曾经尝试过这个,并且可以帮助我指出正确的方向来做到这一点?干杯!

1 个答案:

答案 0 :(得分:0)

自问题发布以来已经有一段时间了,但这是我用TLDGen进行多次tld生成的方式。我从你的问题开始,因为在项目中的那些人使用你的答案作为参考:)。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.7</version>
    <configuration>
        <includes>
            <include>**</include>
        </includes>
        <doclet>org.tldgen.TldDoclet</doclet>
        <docletArtifacts>
            <!-- listing all dependencies for tldgen: 
            the tldgen library, commons-logging, commons-io, 
            commons-lang, geronimo-jsp_2.1_spec, log4j, saxon, stax
            not sure if they have to be listed here, will have to check; if I
            don't set them I get class not found errors, but I'm guessing I 
            have a misconfiguration -->
        </docletArtifacts>
        <show>private</show>
        <additionalparam>
            -htmlFolder ${basedir}/target/docs
            -tldFolder ${basedir}/src/main/java/META-INF
            -license NONE
        </additionalparam>
        <useStandardDocletOptions>true</useStandardDocletOptions>
        <author>false</author>
        <encoding>utf-8</encoding>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jsr173_api</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>
    <executions>
        <execution>
            <phase>generate-resources</phase>                            
            <goals>
                <goal>javadoc</goal>
            </goals>
        </execution>
    </executions>
</plugin>