我可能无法找到适当的组合键从谷歌中找到这个。
环境:Gradle 2.0
引用了文档http://www.gradle.org/docs/current/userguide/publishing_maven.html
我有一个像
这样的gradle flat multi level项目root:
-project1
-project2
使用plugin: 'maven-publish'
我想将个别项目安装到maven local repo
。
但是当我尝试执行publishToMavenLocal
任务时,它创建jar
但该jar没有任何class files
。
每个单独的项目都有源文件夹src/api/java
和src/impl/java
我要安装api
和imll
分开,如果单捆绑也很好。
下面是我当前的build.gradle
文件内容:
root:
subprojects {
apply plugin: 'eclipse'
apply plugin: "java"
apply plugin: "maven"
apply plugin: 'maven-publish'
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
testCompile 'junit:junit:4.8.2'
}
group = 'com.xx.ws.api'
version = '1.0'
description = "Common Utils Test."
targetCompatibility = "1.8"
sourceCompatibility = "1.8"
jar {
manifest.attributes provider: 'test'
}
//Gradle Wrapper genrator
task wrapper(type: Wrapper) {
gradleVersion = '2.0'
}
}
项目1:
ext {
jerseyVersion = "2.10.1"
}
group = "com.xx.ws.api"
version = 1.0
dependencies {
compile project(':commonutil')
compile 'commons-codec:commons-codec:1.5'
compile 'commons-lang:commons-lang:2.6'
compile (group: 'org.glassfish.jersey.containers', name: 'jersey-container-servlet', version: jerseyVersion){
exclude module: 'jersey-client'
exclude module: 'javax.annotation-api'
exclude module: 'validation-api'
exclude module: 'aopalliance-repackaged'
exclude module: 'javax.inject'
exclude module: 'hk2-api'
exclude module: 'hk2-locator'
exclude module: 'hk2-utils'
exclude module: 'tiger-types'
exclude module: 'osgi-resource-locator'
exclude module: 'jersey-guava'
exclude module: 'jersey-container-servlet-core'
exclude module: 'jersey-container-servlet'
exclude module: 'jersey-common'
exclude module: 'jersey-server'
}
// implCompile (group: 'org.glassfish.jersey.ext', name: 'jersey-spring3', version: jerseyVersion){
// //excluding a particular transitive dependency:
// //exclude module: 'cglib' //by artifact name
// exclude group: 'org.springframework' //by group
// //exclude group: 'org.unwanted', module: 'iAmBuggy' //by both name and group
// }
testCompile 'junit:junit:4.10'
}
task sourceJar(type: Jar) {
classifier "source"
}
publishing {
publications {
maven(MavenPublication) {
from components.java
//artifact sourceJar // Publish the output of the sourceJar task
//artifact source: sourceJar, classifier: 'src', extension: 'zip'
}
}
}
请帮助我,如果我遗失任何东西或者我完全错误地学习Gradle。
答案 0 :(得分:1)
每个项目的源文件夹为src / api / java和src / impl / java
默认情况下,Gradle希望您的主要源文件夹为src/main/java
,如果您想将其放在不同的位置,则需要告诉Gradle它在哪里as explained in the user guide