当前位置: 首页 > 知识库问答 >
问题:

在Gradle中创建多个具有不同依赖关系的.war文件

谯灿
2023-03-14

我正在使用war插件为我在Gradle中的项目生成一个简单的.war文件。我想知道如何配置gradle,这样我就可以创建4个不同的.war文件,这些文件具有不同的依赖关系。

    null

下面的示例创建了一个只包含一个jar的war文件,但我希望使用不同的jar生成5个不同的.war文件。

Build.Gradle

apply plugin: 'java'
apply plugin: 'war'

dependencies {
    compile files('/lib/qas.jar','/lib/axis1-1.4.jar','/lib/axis2-kernel-1.3.jar','/lib/dom4j-1.6.1.jar','/lib/log4j-1.2.14.jar')
    providedCompile files('/lib/j2ee-1.4.03.jar')
}

war {
    classpath = ['/lib/qas.jar']
}

task dist(dependsOn: 'war') << {
    copy {
        from war.archivePath
        into "dist/"
    }
}

共有1个答案

谢志用
2023-03-14

我有点搞不清你到底要构建多少个战争发行版。您可以轻松地修改它以创建额外的WAR文件。以下是实现这一目标的一种方法:

task createStandardWar(type: War, dependsOn: classes) {
    baseName = 'standard'
    destinationDir = file("$buildDir/dist")
}

task createStandardWarQasOnly(type: War, dependsOn: classes) {
    baseName = 'standard-qas-only'
    destinationDir = file("$buildDir/dist")
    classpath = war.classpath.minus(files('/lib/axis1-1.4.jar','/lib/axis2-kernel-1.3.jar','/lib/dom4j-1.6.1.jar','/lib/log4j-1.2.14.jar'))
}

task createStandardWarQasAndLog4J(type: War, dependsOn: classes) {
    baseName = 'standard-qas-log4j'
    destinationDir = file("$buildDir/dist")
    classpath = war.classpath.minus(files('/lib/axis1-1.4.jar','/lib/axis2-kernel-1.3.jar','/lib/dom4j-1.6.1.jar'))
}

task createDists(dependsOn: [createStandardWar, createStandardWarQasOnly, createStandardWarQasAndLog4J])

这个构建脚本摘录通过声明WAR类型的增强任务创建了三个不同的WAR文件。它假设您仍然希望在WAR文件中的web-inf/classes下拥有已编译的源文件,所以我没有将其从类路径中删除。发行版最终位于build/dist目录中。任务createdists将创建所有这些元素。

 类似资料:
  • 我当前的jar在build中。gradle如下所示: 而且工作得很好。 然而,我有一个来自格雷德的消息(可能是从6号开始?) 这是实际消息: 零件<代码>配置。不推荐使用compile。 如何更新? 如果我改变了 Gradle说

  • 我试图使用gradle和以下指令指定一些jar依赖项: http://gradle.org/docs/current/userguide/dependency_management.html#sub:file_dependencies 当我从windows cmd运行gradle时,我得到: 我错过了什么?

  • 在app.gradle中,我只为专业版添加了LockPattern库: 我在两种风格中都描述了相同的类(所以在主文件夹中),因为它很大,我不想在两种风格中重复代码。pro版本成功构建,但lite版本显示了一个错误,因为我没有导入lite版本的依赖项。 我看到的一个解决方案是将lockpattern库添加到两种口味中,然后使用proGuard,将其从lite口味中删除。虽然我相信这可能奏效,但这可能

  • 我使用下面的代码创建了20篇帖子,每个帖子都有3条评论。 相反,我想创建20个帖子,每个帖子都有随机数量的评论(例如,帖子1有2个评论,帖子2有4个评论,等等)。) 这不起作用,每个帖子都有相同(随机)数量的评论。 我怎样才能做到这一点?

  • 我尝试使用gradle build的以下格式创建一个jar库,以便以后可以将其作为jar包导入该项目中的其他人。但是,生成的jar只有一个清单文件,没有java文件。 这些文件在Eclipse中的一个包中。 感恩节。

  • 我想创建一些依赖于其他一些(第三方)jar的bundles(这是否是一个好的实践是另一个话题) 我可以使用gradle生成一个fat jar(它有所有依赖的jar)和osgi清单 我的项目布局将jar存储在libs/文件夹中,第三方jar(例如ibm.jar)位于jar的根中。 我将我的gradle任务是使用osgi插件与一些基本的osgi指令,我只指定了出口包作为我的程序的包手动,但没有其他3个