Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/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
Java 带装配模块的渐变弹簧防尘套_Java_Gradle_Spring Boot - Fatal编程技术网

Java 带装配模块的渐变弹簧防尘套

Java 带装配模块的渐变弹簧防尘套,java,gradle,spring-boot,Java,Gradle,Spring Boot,我是Gradle的新手,我面临一个问题(使用Gradle 2.14) 我的项目有3个子项目:组装、sprinBootProject、E2E 汇编模块负责压缩spring启动应用程序的jar以及属性文件。 E2E模块是一个“端到端”测试模块,用于测试spring boot应用程序 我在assembly/build.gradle中使用的分发插件如下: apply plugin: 'distribution' distributions { main { baseName "

我是Gradle的新手,我面临一个问题(使用Gradle 2.14)

我的项目有3个子项目:组装、sprinBootProject、E2E
汇编模块负责压缩spring启动应用程序的jar以及属性文件。
E2E模块是一个“端到端”测试模块,用于测试spring boot应用程序

我在assembly/build.gradle中使用的分发插件如下:

apply plugin: 'distribution'

distributions {
    main {
        baseName "project-assembly"
        contents{
            from project(':springBootProject').fileTree(dir: 'build/libs', include: ['*.jar'])
            from project(':springBootProject').fileTree(dir: 'build/resources/main', includes: ['*.properties', 'conf/*.properties'])
        }
    }
}
但我需要确保springBootProject将在组装子项目之前进行评估,因此我使用dependsOn如下:

distZip.dependsOn(':springBootProject:build')
当我添加这一行时,我看到E2E模块在compileTestJava任务中失败,因此这一行影响了spring引导应用程序的生成(我认为)

E2E/build.gradle:

dependencies {
    testCompile project(":springBootProject")
}
distZip.dependsOn(':springBootProject:build')
bootRepackage.mustRunAfter(':E2E:test')
所以我的问题是我做得对吗?为什么当我添加dependsOn行时,E2E模块会受到影响,我如何强制Gradle在组装模块之前评估spring boot应用程序?

我明白了。 Gradle将按字母顺序评估模块
因此,评估将是:assembly->E2E->springBootProject
将此行添加到assembly/build.gradle时:

dependencies {
    testCompile project(":springBootProject")
}
distZip.dependsOn(':springBootProject:build')
bootRepackage.mustRunAfter(':E2E:test')
评估的顺序更改为:assembly->springBootProject->E2E

现在在“springBootProject”模块中,我使用SpringBoot插件来生成一个可执行jar,这个可执行jar是由task:springBootProject:bootRepackage生成的,它使用了由:springBootProject:jar任务生成的jar并将其转换为可执行文件

现在因为'E2E'模块依赖于'springBootProject',它将使用它的jar,但是现在这个jar是可执行的,因此我在'E2E'中有一个编译错误

因此,我必须确保“E2E”模块获得原始jar,而不是可执行jar。 所以我在springBootProject/build.gradle中添加了这一行:

dependencies {
    testCompile project(":springBootProject")
}
distZip.dependsOn(':springBootProject:build')
bootRepackage.mustRunAfter(':E2E:test')

这似乎解决了问题

本教程中出现了相同类型的问题: