Я пытаюсь создать библиотеку и опубликовать ее в maven local.Когда я начинаю пытаться добавить MavenPublication
к publications
, среда IDE выделяет его пунктирным подчеркиванием, как будто это неразрешенная ссылка.То же самое с параметрами, такими как from
и artifact
.
Если я раскомментирую блок pom
, синхронизация gradle завершится неудачно и выдаст сообщение Cause: invalid type code: B3
, в конечном итоге из-за org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException
для одного из параметров внутри.
![IntelliJ Idea screen shot](https://i.stack.imgur.com/wi9xk.png)
Этот файл build.gradle находится в одном из моих модулей.Верхний уровень build.gradle довольно прост.
buildscript {
repositories {
mavenLocal()
mavenCentral()
maven { url "https://plugins.gradle.org/m2/" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
jcenter()
}
dependencies {
}
}
allprojects {
apply plugin: "idea"
group = 'com.mygroup'
version = '1.0.0'
repositories {
mavenLocal()
mavenCentral()
jcenter()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://oss.sonatype.org/content/repositories/releases/" }
}
}
А вот и модуль build.gradle.
plugins {
id 'java-library'
id 'maven-publish'
id 'signing'
}
task sourcesJar(type: Jar) {
from sourceSets.main.allJava
archiveClassifier = 'sources'
}
task javadocJar(type: Jar) {
from javadoc
archiveClassifier = 'javadoc'
}
publishing {
publications {
mavenJava(MavenPublication) {
artifactId = 'mylibrary'
from components.java
artifact sourcesJar
artifact javadocJar
pom {
name = 'MyLibrary'
organization {
name 'MyOrg'
url 'www.myurl.com'
}
}
}
}
}
signing {
sign publishing.publications.mavenJava
}
javadoc {
if(JavaVersion.current().isJava9Compatible()) {
options.addBooleanOption('html5', true)
}
}
Я использую Gradle 5.1.1, IntelliJ Idea 2019.1.2 и JDK 12.0.1.