有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将人工战争添加为Gradle依赖项

我正在进行一个Spring MVC项目(使用Gradle)来生成一个模板,以便集成到不同的项目中。模板项目包含很少的HTML文件和一些处理属性的类。我已经配置了artifactory gradle插件来生成并发布一个包含我的HTML文件和类的WAR。一切正常,我的WAR和POM文件现在可以在我的Artifactory服务器下使用。这是我身材的一部分。格雷德尔锉刀

war {
    rootSpec.exclude('**/*.properties')
    [...]
    rootSpec.exclude('**/test/**')
    rootSpec.exclude('**/*.jar')
}

artifactory {
    publish {
        contextUrl = "myurl"  
        repository {
            repoKey = 'myrepo'
            username = "myuser"
            password = "mypasswd"
            maven = true
        }
        defaults {
            publications ('mavenJava')
        }
    }
}
publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.web
        }
    }
 }    

不幸的是,当我试图添加这个工件作为对其他项目的依赖时,Gradle成功地找到了WAR,但项目中没有集成任何东西。我在项目中找不到任何HTML、类或war文件

dependencies {
    compile(group: 'test.spring', name: 'test-layout', version: '0.0.1', ext: 'war')
}

是不是有什么东西不见了,还是我完全不懂


共 (2) 个答案

  1. # 1 楼答案

    向war文件添加依赖项是没有意义的,因为这是应用程序服务器的打包,而不是其他项目的打包

    我建议您也发布原始项目中的其他工件,并将它们作为依赖项导入

    另一种方法是在一个单独的任务中解包war,但当您控制源项目时,不需要这样做

  2. # 2 楼答案

    好吧,在Gradle论坛上问了同样的问题之后,似乎没有简单的方法可以在不失去所有依赖关系的情况下使用一个工件来实现这一点(特别感谢Lance_Java)。听起来好像我必须创建一个JAR和一个ZIP工件(参见前面@Joachim Nilsson帖子中描述的ZIP引用)

    https://discuss.gradle.org/t/how-to-add-an-artifactory-war-as-a-gradle-dependency/19804/4

    我的最终解决方案将是在“commons”web存储库下简单地部署我的模板,并在JAR工件中部署我的配置类