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