Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何告诉gradle构建相关项目的档案并将其上传到本地maven_Gradle_Multi Project - Fatal编程技术网

如何告诉gradle构建相关项目的档案并将其上传到本地maven

如何告诉gradle构建相关项目的档案并将其上传到本地maven,gradle,multi-project,Gradle,Multi Project,我有一个多项目的问题,Gradle的文档中没有任何信息(在stackoverflow上也找不到)。任何帮助/指导都将不胜感激 以下是我的项目布局: ProjectLeftArm:生成一个jar文件 project RightArm:生成一个jar文件 project AllArms:依赖于项目LeftArm和RightArm,并生成一个war文件 当我在AllArms项目中运行“gradle build uploadArchives”时,它会构建LeftArm和RightArm项目,但不会将

我有一个多项目的问题,Gradle的文档中没有任何信息(在stackoverflow上也找不到)。任何帮助/指导都将不胜感激

以下是我的项目布局:

  • ProjectLeftArm:生成一个jar文件
  • project RightArm:生成一个jar文件
  • project AllArms:依赖于项目LeftArm和RightArm,并生成一个
    war
    文件
当我在AllArms项目中运行“gradle build uploadArchives”时,它会构建LeftArm和RightArm项目,但不会将
jar
文件(由LeftArm和RightArm项目生成)上载到本地Maven repo

以下是我的
build.gradle
文件:

项目左臂:
应用插件:“java”
应用插件:“eclipse”
应用插件:“创意”
应用插件:“maven”
ext.artifactId='LeftArm'
archivesBaseName=ext.artifactId//设置warfile/jarfile输出的文件名
组='mygroup'
版本='1.0'
构建脚本
{
存储库
{
mavenLocal()
}
}
罐子
{
from(sourceset['main'].allJava)
}
依赖关系
{
编译组:'javax.validation',名称:'validation-api',版本:'1.0.0.GA'
编译组:“javax.validation”,名称:“validation-api-sources”,版本:“1.0.0.GA”
}
def localrepoorl='file://'+新文件(System.getProperty('user.home'),'.m2/repository')。绝对路径
//注:本项目将发布至当地Maven repo。
上传档案
{
存储库
{
mavenDeployer
{
存储库(url:localRepoURL)
addFilter('jar')
{ 
工件,文件->artifact.ext=='jar'
}
}
}
}

项目右臂:
应用插件:“java”
应用插件:“eclipse”
应用插件:“创意”
应用插件:“maven”
ext.artifactId='RightArm'
archivesBaseName=ext.artifactId//设置warfile/jarfile输出的文件名
组='mygroup'
版本='1.0'
构建脚本
{
存储库
{
mavenLocal()
}
}
罐子
{
from(sourceset['main'].allJava)
}
依赖关系
{
编译组:'javax.validation',名称:'validation-api',版本:'1.0.0.GA'
编译组:“javax.validation”,名称:“validation-api-sources”,版本:“1.0.0.GA”
}
def localrepoorl='file://'+新文件(System.getProperty('user.home'),'.m2/repository')。绝对路径
//注:本项目将发布至当地Maven repo。
上传档案
{
存储库
{
mavenDeployer
{
存储库(url:localRepoURL)
addFilter('jar')
{ 
工件,文件->artifact.ext=='jar'
}
}
}
}

project AllArms:
应用插件:“java”
应用插件:“战争”
应用插件:“maven”
应用插件:“创意”
应用插件:“eclipse”
ext.artifactId='AllArms'
ext.sourceCompatibility=1.6
archivesBaseName=artifactId//设置warfile/jarfile输出的文件名
组='mygroup'
版本='1.0'
def gwtVersion='2.2.0'
存储库
{
mavenLocal()
mavenCentral()
}
依赖关系
{
编译项目(“:LeftArm”)
编译项目(“:RightArm”)
//######注意:这是不执行构建中断b/c上载存档任务的地方###
编译组:组,名称:“LeftArm”,版本:version
编译组:组,名称:“RightArm”,版本:version
providedCompile组:'javax.validation',名称:'validation-api',版本:'1.0.0.GA'
providedCompile组:'javax.validation',名称:'validation-api-sources',版本:'1.0.0.GA'
提供的编译组:'com.google.gwt',名称:'gwt-user',版本:gwtVersion
providedcompilegroup:'com.google.gwt',名称:'gwt-dev',版本:gwtVersion
提供的编译组:“org.gwtext”,名称:“gwtext”,版本:“2.0.4”
}
任务compileGwt(dependsOn:classes,type:JavaExec){
project.ext
{
gwtDir=“${project.buildDir}/gwt”
extraDir=“${project.buildDir}/extra”
gwtModuleName='MyModuleName'
}
inputs.source sourceset.main.java.srcDirs
inputs.dir sourceset.main.output.resourcesDir
outputs.dir project.gwtDir
//增量构建的变通方法(GRADLE-1483)
outputs.uptdatespec=new org.gradle.api.specs.AndSpec()
首先
{
文件(project.gwtDir).mkdirs()
}
main='com.google.gwt.dev.Compiler'
类路径
{
[
sourceSets.main.java.srcDirs,//java源代码
sourceset.main.output.resourcesDir,//生成的资源
sourceset.main.output.classesDir,//生成的类
sourceset.main.compileClasspath,//Deps
]
}
args=
[
project.gwtModuleName,//您的GWT模块
“-war”,project.gwtDir,
“-logLevel”、“INFO”,
“-localWorkers”,“2”,
“-compileReport”,
“-extra”,project.extraDir,
]
maxHeapSize='256M'
}
构建脚本
{
存储库
{
mavenLocal()
}
}
源集
{
主要
{
资源
{srcDir('src/main/java')。包括('**/client/**')。包括('**/public/**')。包括('**/*.gwt.xml'))
}
}
}
war.dependsOn(compileGwt)
战争
{
def gwtOutputTree=project.fileTree(project.gwtDir)
from(gwtutput树)
baseName=artifactId
}
任务类Jar(类型:Jar){
德彭森(班级)
baseName=artifactId
}
人工制品
{
档案战争
}
def localrepoorl='file://'+新文件(System.getProperty('user.home'),'.m2/repository')。绝对路径
//注:本项目将发布至当地Maven repo。
上传档案
{
存储库
{
mavenDeployer
{
存储库(url:localRepoURL)
addFilter('war')
{ 
工件,文件->artifact.ext=='war'
}
}
}
}

uploadArchives
不用于安装到本地Maven存储库。相反,使用
install
任务。

在project AllArms中,我运行了“gradle build install”,它不发布/上传/安装LeftArm和RightArm JAR。