2015-01-09 55 views
4

我正在使用Gradle maven插件来构建一个用于另一个不相关项目的人造物。随着内置的.jar人造体,我还想生成并安装它旁边的人造物。Gradle:使用javadocs进行gradle安装

使用gradle clean build javadoc install产生在当地构建文件的JavaDoc,并安装内置假象,以本地资源库,但目前不建立和沿侧将其安装-javadoc.jar

有没有办法在Gradle中使用mavenjavadoc插件来做到这一点?我不介意写一个自定义任务来完成它,但如果存在的话,我宁愿使用“官方支持”的方式。

的build.gradle文件:

project.group = "org.example.artefact" 
project.version = "1.0-SNAPSHOT" 

apply plugin: 'java' 
apply plugin: 'maven' 

dependencies { 
    // ... 
} 

uploadArchives { 
    repositories { 
     mavenDeployer { 
      // Custom repository location 
      repository(url: "file:///home/user/.m3/repository") 
     } 
    } 
} 
+0

很好的问题......我确实让我的build.gradle文件来做到这一点,但我不明白他们为什么会工作... – fge

回答

6

的Javadoc由javadoc任务(我想你被错误指的是它作为一个插件)制作。运行buildinstall时,此任务实际上并未被默认执行。另外,您需要定义一个jar任务来捆绑javadoc并通过将其添加到artifacts {...}块来告诉您的构建发布该构件。

task javadocJar(type: Jar) { 
    classifier = 'javadoc' 
    from javadoc 
} 

artifacts { 
    archives javadocJar 
} 

运行install应该同时创建javadoc jar并将其发布到maven local。此外,运行uploadArchives会将该工件发布到任何配置的存储库。

编辑:更新后,添加javadoc jar任务的定义。

+0

谢谢。这有助于解决方案。唯一的问题是javadoc任务没有生成Jar artefact(在我使用的Gradle版本中:2.2.1),所以我不得不介绍一个自定义任务来生成javadoc jar。 – lmika

+0

是的,对不起。我已经更新了我的答案,以反映需要创建额外的'jar'任务。 –

相关问题