java - 运行 gradle "war"不包括依赖的 intellij 项目

标签 java tomcat intellij-idea war

我有一个包含两个模块的 intellij 项目:

web-services(我的 API),library-services(业务逻辑)。

网络服务的build.gradle:

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'maven-publish'
apply from: ext.gradleDir + '/common.gradle'
apply from: ext.gradleDir + '/integration_test.gradle'

sourceCompatibility = 1.8
targetCompatibility = 1.8
project.version = '1.0.' + getBuildNumber()


dependencies {
    compile project(':library-services')
    compile('com.waze.automation:common:1.0.80')

    compile('com.sun.jersey:jersey-bundle:1.19')
    compile('com.sun.jersey:jersey-json:1.19')
    compile group:  'org.codehaus.jackson', name:'jackson-jaxrs', version: '1.1.1'

    compile('com.google.guava:guava:18.0')

    testCompile group: 'junit', name: 'junit', version: '4.11'
    testCompile('org.hamcrest:hamcrest-all:1.3')
    testCompile('org.mockito:mockito-all:1.9.5')

}

war {
    from 'src/main' // include source files in war
}

我运行这个 gradle 命令:

~/workspaceQa/MobileAutomationWebService/web-services ⮀
❯ ./gradlew war   

但是在创建的 war 中我没有看到图书馆服务的类

我的服务抛出 ClassNoFound 异常。

这是我的日志的一部分。我该如何解决这个问题?

12:10:28.081 [INFO] [org.gradle.BuildLogger] Tasks to be executed: [task ':library-services:compileJava', task ':library-services:processResources', task ':library-services:verifyDependencies', task ':library-services:classes', task ':library-services:setProjectVersion', task ':library-services:jar', task ':web-services:compileJava', task ':web-services:processResources', task ':web-services:verifyDependencies', task ':web-services:classes', task ':web-services:war']

最佳答案

这是我注意到的一个奇怪的 gradle IntelliJ 行为。可能只是 gradle,但我通常不在 IntelliJ 之外使用 gradle。所以,我不能肯定地说。 在任何情况下,当我包含的源集模块在我包含它的模块的名称之后有一个按字母顺序排列的名称时。WAR 缺少包含模块中的类。不知道是什么原因造成的,但我在包含的模块的开头加上了下划线,它包含了类。 这不是一个理想的解决方案,但对我有用,因为我有一个包含在我的 API 模块中的核心源集。它花了一段时间才成为我的问题,因为我的核心模块称为 api-core。在我添加“Activity ”API 模块之前一切正常。 在不知 Prop 体机制是什么的情况下,我总是不愿意发布这种变通解决方案。我希望它有所帮助,如果有人知道根本原因是什么并且有更好的解决方案。洗耳恭听。 :)

关于java - 运行 gradle "war"不包括依赖的 intellij 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38072518/

相关文章:

linux - 从 Hudson 运行时 Tomcat 脚本不工作

javascript - IntelliJ IDEA 2017.1 设置中缺少 Javascript 库菜单

Java UUID 字符串表示自然排序

java - 我的程序的哪一部分处于错误的循环中? java

tomcat - 使tomcat管理器应用程序成为多用户

java - 使用代理连接数据源

java - 来自 aws-java-sdk 的 DynamoDB 在 gradle 下不完整

java - SpringBoot - 制作 jar 文件 - 在 META-INF/spring.factories 中找不到自动配置类

java - Spring-data 和 Hibernate 自动生成的 ID

java - System property http.nonProxyHosts has been set to local|*.local... 是什么意思?这意味着什么?