java – 在单个build.gradle中使用两组不同的依赖项编译源代码
发布时间:2020-12-15 02:14:28 所属栏目:Java 来源:网络整理
导读:我正在使用gradle脚本,我有两个独立的认知列表和其他依赖项列表. 清单1: cognos:a:10.1.1cognos:b:10.1.1cognos:c:10.1.1cognos:d:10.1.1com:axis:2.0.3com:webroot:5.0.3 和清单2: cognos:a:10.2.2cognos:b:10.2.2cognos:c:10.2.2cognos:d:10.2.2traven:n
我正在使用gradle脚本,我有两个独立的认知列表和其他依赖项列表.
清单1: cognos:a:10.1.1 cognos:b:10.1.1 cognos:c:10.1.1 cognos:d:10.1.1 com:axis:2.0.3 com:webroot:5.0.3 和清单2: cognos:a:10.2.2 cognos:b:10.2.2 cognos:c:10.2.2 cognos:d:10.2.2 traven:nt:10.5.0 traven:txtx:5.2.1 我需要首先使用list 1依赖项编译我的源代码,然后列出2个依赖项,并在artifactory中使用以下名称发布工件. 具有列表1和列表2依赖项的工件 abc-1.0.0-cognos10.1.1 abc-1.0.0-cognos10.2.2 我可以用build.gradle来做,但我可以在两个单独的build.gradle脚本中完成.我不知道如何在signle build.gradle脚本中实现这个目标.有人知道如何在单个构建中实现它.gradle apply plugin: 'java' version = '1.0' sourceCompatibility = 1.7 targetCompatibility = 1.7 //create a single Jar with all dependencies task fatJar(type: Jar) { manifest { attributes 'Implementation-Title': 'Gradle Jar File Example','Implementation-Version': version,'Main-Class': 'com.mkyong.DateUtils' } baseName = project.name + '-all' from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } with jar } //Get dependencies from Maven central repository repositories { mavenCentral() } //Project dependencies dependencies { compile 'cognos:a:10.1.1 compile 'cognos:b:10.1.1' compile 'cognos:c:10.1.1' compile 'cognos:d:10.1.1' compile 'traven:nt:10.5.0' compile 'traven:txtx:5.2.1' } 解决方法
在build.gradle中,将cognos和app version替换为参数:
version = "1.0.0-cognos${cognosVersion}" sourceCompatibility = 1.7 targetCompatibility = 1.7 ... dependencies { compile "cognos:a:${cognosVersion}" compile "cognos:b:${cognosVersion}" compile "cognos:c:${cognosVersion}" compile "cognos:d:${cognosVersion}" } 然后你可以手动运行几次: gradle build -PcognosVersion=xxxx 如果您想自动执行此操作,则可以编写第二个gradle驱动程序脚本release.gradle: defaultTasks 'performRelease' task performRelease() << { ['10.1.1','10.2.2'].each{ def tempTask = tasks.create(name: "execute_$it",type: GradleBuild) tempTask.buildFile='build.gradle' tempTask.tasks = ['build'] tempTask.startParameter.projectProperties = [cognosVersion: it] tempTask.execute() } } 您可以执行以下操作:gradle -b release.gradle (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |