自动将JavaDoc发布为远程计算机上正常运行的网站

时间:2014-06-24 14:14:42

标签: maven repository javadoc nexus

有没有办法在将其上传到Nexus Maven存储库后自动发布为实时网站javadocs?我有一些正在不断开发的软件包,我希望在将更新的代码上传到我们的远程存储库之后,可以让其他团队成员直接浏览这些文档。

是否有任何现成的解决方案,或者我必须写一个shell脚本(在成功部署代码到远程仓库后由Maven执行),这会将文档复制到Web服务器上的远程位置?

我知道Nexus Professional允许查看开箱即用的javadoc,但即使是10位用户也有点贵,所以我很欣赏不同的解决方案: - )

我正在使用Eclipse @Windows + Maven 2。

谢谢!

3 个答案:

答案 0 :(得分:3)

如果您的项目是开源的并且已发布到Maven Central,那么您的javadoc将自动在javadoc.io处可用。

网址格式为:http://www.javadoc.io/doc/[groupId]/[artifactId]。例如,我在www.javadoc.io/doc/me.ramswaroop.jbot/jbot

为我的项目提供了javadoc

答案 1 :(得分:1)

Nexus Open Source以及Nexus Professional支持网站存储库格式,允许您托管Maven制作的网站。如果您设置发布包含Javadoc作为构建一部分的Maven站点,则可以在那里访问它们。

您可以做的另一件事就是发布javadoc和源工件作为构建的一部分,然后Eclipse将能够从Nexus自动下载它们,因此您甚至不需要为您的开发人员提供带有javadoc的网站。

当然其他人可能会想要该网站。

所有可用文档in the Nexus book as usual

答案 2 :(得分:1)

回复有点迟,但其他人可能在将来需要它。我没有尝试使用Maven Wagon插件使用的解决方案。基本上我首先使用sftp协议将带有javadoc的jar上传到webserver,然后使用ssh命令解压缩它。

因此配置插件的父POM的部分内容如下:

   <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>wagon-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>upload-javadoc</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>upload</goal>
                        </goals>
                        <configuration>
                            <serverId>my_id</serverId>
                            <fromDir>${local.dir}</fromDir>
                            <includes>${javaDoc.file}</includes>
                            <excludes>pom.xml</excludes>
                            <url>${remote.url}</url>
                            <toDir>${remote.dir}</toDir>
                        </configuration>
                    </execution>
                    <execution>
                        <id>execute-test-commands</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>sshexec</goal>
                        </goals>
                        <configuration>
                            <serverId>my_id</serverId>
                            <url>${remote.url}</url>
                            <commands>
                                <command>mkdir -p ${www.dir}</command>
                                <command>unzip -o ${remote.dir}/${javaDoc.file} -d ${www.dir} > latest_unzip_log.txt</command>
                            </commands>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>

然后只需在子pom中调用插件:

<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
    </plugin>
</plugins>

所以这是我的解决方案,但我猜Manfred更简单。

聚苯乙烯。 让Javadoc仅在Ecplise中可用(我不管怎么做)不是目标,因为Javadoc可以通过网站为其他项目成员提供。