Maven装配的Gradle等价

Maven装配的Gradle等价,maven,gradle,maven-assembly-plugin,Maven,Gradle,Maven Assembly Plugin,只要Gradle还在,我就认为这是有充分记录的,但我正在努力。对不起,如果这对其他人来说是显而易见的 我和maven有一个多项目构建设置,我正在设置gradle进行比较 项目A生成一个jar文件,项目B生成一个war文件(并且依赖于A中的jar)。项目C我想创建一个程序集,即zip文件。zip文件应该包含项目C中目录的内容、项目B中的war文件以及从Archiva下拉的tomcat程序集的未打包内容 我遇到的问题是,当gradle评估build.gradle文件时,它失败了,因为它找不到war文

只要Gradle还在,我就认为这是有充分记录的,但我正在努力。对不起,如果这对其他人来说是显而易见的

我和maven有一个多项目构建设置,我正在设置gradle进行比较

项目A生成一个jar文件,项目B生成一个war文件(并且依赖于A中的jar)。项目C我想创建一个程序集,即zip文件。zip文件应该包含项目C中目录的内容、项目B中的war文件以及从Archiva下拉的tomcat程序集的未打包内容

我遇到的问题是,当gradle评估build.gradle文件时,它失败了,因为它找不到war文件——这并不奇怪,war文件还没有生成

那么,如何表达对war文件的依赖关系,使其在评估过程中不会导致失败呢

apply plugin: 'distribution'

description = """E2am Assembly"""

project(':assembly') {
    dependencies {
        compile project(':webapps/e2am')
    }
}


dependencies {
    compile group: 'com.e2open.platform', name: 'e2am', version:'9.0-SNAPSHOT', ext:'war'
    compile group: 'com.e2open.platform.third-party.tomcat', name: 'tomcat-assembly',version:'7.0.42-1002', classifier:'bin', ext:'zip'
}

task explodeTomcat(type: Copy, dependsOn: ':webapps/e2am:install'){

   configurations.compile.filter { it.toString().endsWith(".zip") }.each{
      from zipTree(it)
   }
   into 'TomcatUnpacked'

   configurations.compile.filter { it.toString().endsWith(".war") }.each{
      from it
   }
   into 'war'

}

distributions {
    main {
        baseName = 'e2am-assembly'
        contents {
            from { 'tomcat' }
            from { 'TomcatUnpacked' }
            from { 'war' }
        }
    }
}


distZip.dependsOn explodeTomcat
install.dependsOn distZip
此外,顶级项目将“java”和“maven”插件应用于所有子项目

错误是:

FAILURE: Build failed with an exception.

* Where:
    Build file '/kwork/wkcopy/e2amA/assembly/build.gradle' line: 25

* What went wrong:
    A problem occurred evaluating project ':assembly'.
    > Could not resolve all dependencies for configuration ':assembly:compile'.
       > Could not find com.e2open.platform:e2am:9.0-SNAPSHOT.
         Required by:
             com.e2open.platform:assembly:9.0-SNAPSHOT
有人能给我指点文档或讨论,让我走得更远吗?谢谢

您应该查看Gradle文档中的内容

像这样的方法应该会奏效:

dependencies{
   compile project(:webapps/e2am)
   compile group: 'com.e2open.platform.third-party.tomcat', name: 'tomcat-assembly',version:'7.0.42-1002', classifier:'bin', ext:'zip'
}

还有一个看起来很像你正在尝试做的事情——可能值得一看:)

谢谢,这很有帮助。显然,我过度指定了依赖项,因为我有编译项目依赖项(这将获得e2am war文件),然后我指定了“编译组:'com.e2open.platform',名称:'e2am',版本:'9.0-SNAPSHOT',ext:'war'”。除去过度的依赖性允许它进行构建,但它不会像对构建的jar和war工件那样将“assembly”安装到“.m2/repository”中。我将进一步查看文档,看看是否能找到缺少的内容。谢谢