有没有办法在将其上传到Nexus Maven存储库后自动发布为实时网站javadocs?我有一些正在不断开发的软件包,我希望在将更新的代码上传到我们的远程存储库之后,可以让其他团队成员直接浏览这些文档。
是否有任何现成的解决方案,或者我必须写一个shell脚本(在成功部署代码到远程仓库后由Maven执行),这会将文档复制到Web服务器上的远程位置?
我知道Nexus Professional允许查看开箱即用的javadoc,但即使是10位用户也有点贵,所以我很欣赏不同的解决方案: - )
我正在使用Eclipse @Windows + Maven 2。
谢谢!
答案 0 :(得分:3)
如果您的项目是开源的并且已发布到Maven Central,那么您的javadoc将自动在javadoc.io处可用。
网址格式为:http://www.javadoc.io/doc/[groupId]/[artifactId]
。例如,我在www.javadoc.io/doc/me.ramswaroop.jbot/jbot
答案 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可以通过网站为其他项目成员提供。