在没有 POM 的情况下生成和使用 gradle 依赖项

Generate and consume gradle dependency without POM

我正在尝试生成我的 Gradle 项目的 .jar,但是当它是使用 Maven 发布生成时,它也会生成一个 .pom 文件。

问题是我有另一个项目,当它实现这个依赖关系之前它只查找 .jar 现在它在所有其他项目中查找 .pom,我想要做的是该项目停止生成一个.pom 使用“发布”任务或在实施时停止寻找 .pom 文件供其他人使用。

这是在 Artifactory 项目 A 中生成 .jar 的代码,以及在项目 B 中使用 A 并查找 .pom 的代码:

publishing {
    publications {
        mavenJava(MavenPublication) {
              groupId = 'com.proteccion.myproject'
              artifactId = 'myproject-base'
              version = '1.0.1'
            from components.java
        }   
    }
    repositories {
        maven {
            name = 'artifactory'
            url 'https://url/artifactory/MyProject'
            credentials {
                username System.getenv("ARTIFACTORY_USER") 
                password System.getenv("ARTIFACTORY_PWD")  
            }
        }
    }
}

repositories {
    jcenter()
    maven {
        url 'https://url/artifactory/MyProject'
        credentials {
                    username System.getenv("ARTIFACTORY_USER") 
                    password System.getenv("ARTIFACTORY_PWD")  
                }
    }
}

也许 Gradle 相当于这个片段:

publishing {
    publications {
        mavenJava(MavenPublication) {
              groupId = 'com.proteccion.myproject'
              artifactId = 'myproject-base'
              version = '1.0.1'
            from components.java
        }   
    }

最后这对我有用:

metadataSources {
            artifact()
        }

强制只搜索 jar 文件。 完整配置:

publishing {
publications {
    mavenJava(MavenPublication) {
          groupId = 'com.company.myproject'
          artifactId = 'myproject-base'
          version = '1.0.1'
        from components.java
    }   
}
repositories {
    maven {
        name = 'artifactory'
        url 'https://url/artifactory/MyProject'
        credentials {
            username System.getenv("ARTIFACTORY_USER") 
            password System.getenv("ARTIFACTORY_PWD")  
        }
    }
}
}

repositories {
jcenter()
maven {
    url 'https://url/artifactory/MyProject'
    credentials {
                username System.getenv("ARTIFACTORY_USER") 
                password System.getenv("ARTIFACTORY_PWD")  
            }
    metadataSources {
            artifact()
    }
}
}

文档(示例 18): https://docs.gradle.org/current/userguide/dependency_management.html

Example 17. Maven repository that supports artifacts without metadata

repositories {
    maven {
        url "http://repo.mycompany.com/repo"
        metadataSources {
            mavenPom()
            artifact()
        }
    }
}