Eri*_*rra 38 publish artifact gradle maven
尝试将生成的jar安装到我的本地Maven存储库时,我遇到了问题.消息错误只显示'找不到任务'发布'
我正在使用这个Gradle脚本:
buildscript {
ext {
springBootVersion = '1.3.2.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'maven-publish'
jar {
baseName = 'mongofoundry'
version = '1.0.0'
}
sourceCompatibility = 1.7
targetCompatibility = 1.7
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-data-mongodb')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
}
eclipse {
classpath {
containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7'
}
}
task wrapper(type: Wrapper) {
gradleVersion = '2.9'
}
Run Code Online (Sandbox Code Playgroud)
你知道为什么我正在阅读那条错误信息吗?谢谢.
更新
运行@RaGe提到的命令解决了问题:
gradle publishToMavenLocal.
Run Code Online (Sandbox Code Playgroud)
RaG*_*aGe 64
将工件发布到本地maven的正确任务是
gradle publishToMavenLocal
Run Code Online (Sandbox Code Playgroud)
yoA*_*ex5 11
本地检查Maven
对于开发和测试,在本地检查库很有用
gradleapply plugin: 'com.android.library'not的设置apply plugin: 'java-library'(默认情况下可以使用它)
apply plugin: 'maven-publish'
//simple settings
project.afterEvaluate {
publishing {
publications {
library(MavenPublication) {
//setGroupId groupId
setGroupId "com.company"
//setArtifactId artifactId
setArtifactId "HelloWorld"
version "1.1"
artifact bundleDebugAar
/* add a dependency into generated .pom file
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', 'com.company')
dependencyNode.appendNode('artifactId', 'HelloWorld-core')
dependencyNode.appendNode('version', '1.1')
}
*/
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用命令行运行它或在Gradle选项卡中找到此命令
./gradlew publishToMavenLocal
Run Code Online (Sandbox Code Playgroud)
地点
artefact 将被添加到.m2文件夹中
//Unix
~/.m2
//Windows
C:\Users\<username>\.m2
//For example
/Users/alex/.m2/repository/<library_path>/<version>/<name>.<extension>
Run Code Online (Sandbox Code Playgroud)
build文件夹
<project_path>/build/outputs/<extension>
Run Code Online (Sandbox Code Playgroud)
其他存储库位置
~/.gradle/caches/modules-2/files-2.1/<group_id>/<artifact_id>/<version>/<id>
//For example
/Users/alex/.gradle/caches/modules-2/files-2.1/com.company/HelloWorld/1.1/c84ac8bc425dcae087c8abbc9ecdc27fafbb664a
Run Code Online (Sandbox Code Playgroud)
要使用它,请添加mavenLocal(). 将其作为第一项进行优先排序非常重要,这对于内部依赖关系很有用
buildscript {
repositories {
mavenLocal()
}
allprojects {
repositories {
mavenLocal()
}
}
Run Code Online (Sandbox Code Playgroud)
和
dependencies {
implementation 'com.company:HelloWorld:+'
}
Run Code Online (Sandbox Code Playgroud)
*另请记住,如果您使用某种shared.gradle文件(通过apply from),您应该设置与(不)相关的路径project.gradle shared.gradle
这是Gradle 7.5.1和Java 17的替代框架
构建.gradle
plugins {
id 'org.gradle.java'
id 'org.gradle.maven-publish'
}
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
withJavadocJar()
withSourcesJar()
}
publishing {
publications {
mavenJava(MavenPublication) {
groupId = 'your-group'
artifactId = 'your-artifact'
version = "0.0.1"
from components.java
}
}
repositories {
mavenLocal()
}
}
Run Code Online (Sandbox Code Playgroud)
出版
您可以使用以下命令查看有关发布步骤的更多详细信息--info
./gradlew --info publishToMavenLocal
Run Code Online (Sandbox Code Playgroud)
输出目录
Linux/macOS
/Users/<username>/.m2/repository/your-group/your-artifact/0.0.1
Run Code Online (Sandbox Code Playgroud)
视窗
C:\Users\<username>\.m2\repository\your-group\your-artifact\0.0.1
Run Code Online (Sandbox Code Playgroud)
这就是我使用Kotlin DSL (build.gradle.kts) 为我的 Android 库实现的方法:
plugins {
id("maven-publish")
// OR simply
// `maven-publish`
// ... (other plugins)
}
publishing {
repositories {
// Local repository which we can first publish in it to check artifacts
maven {
name = "LocalTestRepo"
url = uri("file://${buildDir}/local-repository")
}
}
publications {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令创建所有出版物:
./gradlew publishAllPublicationsToLocalTestRepoRepository
Run Code Online (Sandbox Code Playgroud)
或者只是使用此命令的单个发布:
./gradlew publishReleasePublicationToLocalTestRepoRepository
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅Gradle 文档:Maven 发布插件。
| 归档时间: |
|
| 查看次数: |
27915 次 |
| 最近记录: |