2017-02-09 49 views
0

我想发布build.gradle文件的一些通用部分,以便可以在不同的项目中重用(使用apply from: url_to_file构造)。要做到这一点,我创建了一个名为gradle这个常见的是含有这些共同构建文件的项目,这个build.gradle文件:发布可重用的gradle任务

group 'org.example' 
version '0.1.0' 

apply plugin: 'maven-publish' 

publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      artifact source: file('files/first.gradle'), classifier: 'first' 
     } 
     mavenJava(MavenPublication) { 
      artifact source: file('files/second.gradle'), classifier: 'second' 
     } 
    } 
    repositories { 
     mavenLocal() 
    } 
} 

文件中Maven仓库发布后有文件,如:

  • gradle这个-common-0.1.0-first.gradle
  • gradle这个常见-0.1.0-second.gradle

我的问题是:我如何从公共区域删除版本号遗漏的工件和classfier?对我来说,理想的文件将是:

  • first.gradle
  • second.gradle

回答

0

有许多不同的答案,你的问题,但我认为你正在试图通常创造的东西,一个插件没有创建插件。

向多个gradle项目添加功能的最佳方式是create a plugin。您还可以利用Rules这个简单的教程没有显示,但您可以检查一些gradle原生插件,如maven-publish

要回答你的问题,不可能在没有版本的情况下将工件发布到Maven存储库。您必须下载一个版本(您可以使用my-artifact:1+下载最新版本),然后自行剥离版本。


我也想知道你打算如何将这些文件包含到你的特定gradle文件中。您将无法将它们用作依赖项,因为依赖性解析发生在读取脚本之后。如果你在脚本运行之前以某种方式下载它们,那么你可能不需要一个Maven仓库。

+0

1.我知道我需要版本,但它在url中是两次。发布后,我可以通过访问文件:https://repository_url/group_name/gradle-common/0.1.0/gradle-common-0.1.0-first.gradle,但我想有像这样的网址:https:// repository_url /group_name/gradle-common/0.1.0/first.gradle 2.我的第一个想法是放入这个文件sonarqube插件配置 - 有一些属性必须定义,可以为许多项目定义一个 - 那里无需在每个build.gradle文件中定义它们 –