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

标签 java gradle jar publishing

我正在尝试生成我的 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

关于java - 在没有 POM 的情况下生成和使用 gradle 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63895799/

相关文章:

java - 如何增加 Java 堆栈跟踪转储的显示行数?

java - 为什么 matlabcontrol 在代理创建时中断调用线程?

java - 线程切换为可运行后 Sprite 不显示

java - Android 上带有 Jar 文件的 Flex AIR

java - 为什么我的子类构造函数没有被调用?

gradle - 如何将build.gradle属性从自定义独立插件应用于应用该插件的项目

java - Ant 到 Gradle 迁移- exec 任务

java - Android Studio 运行时错误 - 由于添加 JAR

java - 使用从 jar 导入的类编译 java 时出错

java - 通过插件 block 将 Gradle 插件应用于子项目和根项目