Maven 用于下载自定义插件依赖项的gradle配置

Maven 用于下载自定义插件依赖项的gradle配置,maven,gradle,Maven,Gradle,我创建了一个gradle插件(简称testinfra),它在编译时和运行时依赖于另外两个JAR。这是我的插件的build.gradle: /** * Define the dependencies for compiling the plugin code */ dependencies { compile gradleApi() compile localGroovy() compile group:'com.mycompany.tools', name: 'lrg

我创建了一个gradle插件(简称testinfra),它在编译时和运行时依赖于另外两个JAR。这是我的插件的build.gradle:

/**
 * Define the dependencies for compiling the plugin code
 */
dependencies {
    compile gradleApi()
    compile localGroovy()
    compile group:'com.mycompany.tools', name: 'lrgmanager', version: '1.0+'
    compile group: 'com.mycompany.tools', name: 'LrgParser', version: '1.0+'
}


/**
 * This task is responsible for publishing the plugin jar in the artifactory
 */ 
group   = 'com.mycompany.tools'  
version = '1.0'
publishing {
    publications {
        publishPlugin(MavenPublication) {
            artifact jar
        }
    }
}
我能够将我的插件jar推送到artifactory。但是当我想使用插件时,我必须指定插件的GAV及其依赖项。见下文:

/**
 * define classpath for buildscript{}, to download the regression plugin and its dependencies
 */
buildscript {
    dependencies {
        classpath group: 'com.mycompany.tools', name: 'testinfra', version: '1.0+'
        classpath group:'com.mycompany.tools', name: 'lrgmanager', version: '1.0+'
        classpath group: 'com.mycompany.tools', name: 'LrgParser', version: '1.0+'
    }
}
apply plugin: 'testinfra'
我的要求是避免指定依赖jar的GAV和testinfra插件GAV。是否有一种方法可以在发布期间配置pom.xml(发布任务),以便在指定插件的GAV时,gradle识别依赖项并下载它们


我试图参考gradle用户指南,但我没有看到任何明确的例子。

使用组件中的
而不是
工件jar
。然后依赖项应该出现在POM中,Gradle会自动将它们拉进来。

我想你应该使用
maven
插件,并适当地配置
uploadArchives
任务。你在用它吗?请看这里:我正在使用“maven publish”插件这是groovy代码。我还需要说components.java还是必须说components.groovy?使用
components.java
。没有
组件。groovy
。将components.java添加到插件的build.gradle中不起作用。下面是生成的pom.xml(与之前的版本相同)`4.0.0.com.oracle.emaas.emdi testinfra 1.0 pom`您的构建可能有问题。有关详细信息,请查看中的maven发布插件一章。请注意,它是components.java
中的
,而不是
components.java
。是的,我使用的是
components.java
。当我使用components.java中的
时,它起了作用。但是现在它失败了,因为插件依赖项的依赖项没有被提取。i、 例如,testinfra dependsOn lrgmanager和lrgmanager dependsOn groovy:2.3我修改了lrgmanager的build.gradle和testinfra build.gradle的代码,以使用components.java中的
,我看到lrgmanager的pom中有groovy的依赖项。testinfra的pom具有lrgparser和lrgmanager的依赖项。我应该怎么做才能获得groovy:2.3呢?