java - 使用 Gradle 将 WAR 文件发布到 Maven Repo

标签 java gradle war

我有一个包含子项目的父模块 Gradle 项目。这些子项目之一是 Web 应用程序。当我发布到 Maven 存储库时,尽管在本地创建了 jar 和 war,但它仅作为 jar 文件发布

父文件 Gradle 设置:

configurations {
        integTestCompile.extendsFrom testCompile
        integTestRuntime.extendsFrom testRuntime
}

allprojects {
    ext {
        springVersion = "4.0.4.RELEASE"
    }

tasks.withType(JavaCompile) { 
    sourceCompatibility = "1.6"
    targetCompatibility = "1.6" 
}
}

subprojects {
    apply plugin: 'java'
    apply plugin: 'eclipse'
    apply plugin: 'maven-publish'


repositories {
    maven {
        url "http://.../mirror/"
    }
}

publishing {
    publications {
        maven(MavenPublication) {
            groupId 'com.blah'
            version '1.2'
            from components.java
        }
    } 

    repositories {  
        maven {
            credentials {
                username ""
                password ""
            }

            if(project.version.endsWith('-SNAPSHOT')) {
                url "http://.../snapshots/"
            } else {
                url "http:/.../internal/"
            }
        }
    }
}

dependencies {
    testCompile 'junit:junit:4.8.2'   
}
}

和网络应用程序gradle

apply plugin: 'war'

configurations {
    providedRuntime
}

war {
    baseName = 'portal-web'
}

dependencies {
compile(project(":portal-web-breadcrumb"))
compile(project(":portal-entity"))

compile(group: 'commons-beanutils', name: 'commons-beanutils', version: '20030211.134440')
compile(group: 'commons-digester', name: 'commons-digester', version: '2.1')
compile(group: 'org.apache.tiles', name: 'tiles-api', version: '3.0.1')
compile(group: 'org.apache.tiles', name: 'tiles-core', version: '3.0.1')
compile(group: 'org.apache.tiles', name: 'tiles-jsp', version: '3.0.1')
compile(group: 'org.slf4j', name: 'slf4j-api', version: '1.7.5')
compile(group: 'org.slf4j', name: 'log4j-over-slf4j', version: '1.7.5')
compile(group: 'javax.servlet', name: 'jstl', version: '1.2')
compile(group: 'taglibs', name: 'standard', version: '1.1.2')
compile(group: 'org.springframework', name: 'spring-core', version: "$springVersion")
compile(group: 'org.springframework', name: 'spring-web', version: "$springVersion")
compile(group: 'org.springframework', name: 'spring-webmvc', version: "$springVersion")  
compile(group: 'log4j', name: 'log4j', version: '1.2.15') {
    exclude group: 'javax.mail', module: 'mail'
    exclude group: 'javax.jms', module: 'jms'
    exclude group: 'com.sun.jdmk', module: 'jmxtools'
    exclude group: 'com.sun.jmx', module: 'jmxri'
}   

providedCompile('javax.servlet:javax.servlet-api:3.1.0')
providedCompile(group: 'javax.servlet', name: 'jsp-api', version: '2.0')
providedCompile(group: 'javax', name: 'javaee-api', version: '6.0')
}

谢谢

最佳答案

要发布 War,请使用 from components.web 配置 MavenPublication

关于java - 使用 Gradle 将 WAR 文件发布到 Maven Repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25063113/

相关文章:

mysql - 如何将mysql驱动添加到openshift tomcat

java - 在从客户端获取请求之前做一些事情,tomcat war

Java Process 在 OutOfMemoryException 之后没有死

java - 如何使用 Java 排列生成器

eclipse - 从 ant + ivy 迁移到 gradle

android - Firebase crashlytics 错误 : Unable to load class 'org.gradle.api.tasks.TaskProvider'

java - 使用Gradle脚本从Java文件创建WAR

java - Android java 设置图片资源

java - Hazelcast map 统计

java - 如何找到影响其他测试执行的测试?