我在尝试将生成的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'
}
您有什么想法为什么我正在阅读该错误消息? 感谢。
已更新
运行@RaGe提到的命令解决了问题:
gradle publishToMavenLocal.
答案 0 :(得分:55)
将工件发布到本地maven的正确任务是
gradle publishToMavenLocal
答案 1 :(得分:1)
我使用名为install的任务,例如:gradle clean install
答案 2 :(得分:1)
在本地检查 Maven
对于开发和测试,本地检查库很有用
gradle
设置用于 apply plugin: 'com.android.library'
而不是 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')
}
*/
}
}
}
}
使用命令行运行它或在Gradle
标签中找到这个命令
./gradlew publishToMavenLocal
位置
artefact 将被添加到 .m2
文件夹中
//Unix
~/.m2
//Windows
C:\Users\<username>\.m2
//For example
/Users/alex/.m2/repository/<library_path>/<version>/<name>.<extension>
build
文件夹
<project_path>/build/outputs/<extension>
其他仓库位置
~/.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
要使用它,请添加 mavenLocal()
。重要的是把它作为第一项来确定优先级,这对内部依赖很有用
buildscript {
repositories {
mavenLocal()
}
allprojects {
repositories {
mavenLocal()
}
}
和
dependencies {
implementation 'com.company:HelloWorld:+'
}
*还请记住,如果您使用一种 shared.gradle
文件(通过 apply from
),您应该设置与 project.gradle
相关的 path(不是 shared.gradle
)