在没有 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()
}
}
}
我正在尝试生成我的 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()
}
}
}