使用Gradle提供前端(JS)和后端API(Java)

时间:2014-07-28 18:29:30

标签: java spring gradle

我正在尝试使用Gradle创建Web应用程序。前端UI将使用Angular.js构建,后端应为Java。当我说后端时,我指的是一个基于Java / Spring的API,将使用Angular.js中的Ajax进行查询。

所以基本上我想要做的是让任何以mysite.com/api/...开头的URL应该路由到src/com/veight/client文件,或者换句话说路由到Java后端。然后,任何其他URL(例如mysite.com/login)都应由JavaScript / Angular.js前端处理。

我使用以下build.gradle文件为前端运行JavaScript / Angular.js路由。我应该如何将与mysite.com/api/...匹配的路由发送到Java / Spring后端?

谢谢你的帮助!

注意:我知道Java Spring自然会执行此路由,它将某些路由mysite.com/home发送到一个文件夹,而处理其他路由mysite.com/api/...则需要购买xml文件。但我认为可以在build.gradle文件中处理它。所以我希望证明/反驳这一理论。

文件结构

.gradle
.settings
build
gradle
src
    com
        veight
            client
WebContent

继承我的build.gradle:

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }

    dependencies {
        classpath 'org.gradle.api.plugins:gradle-tomcat-plugin:1.2.4' // Gradle Tomcat Plugin
        classpath 'com.eriwen:gradle-css-plugin:1.11.1'
        classpath 'com.eriwen:gradle-js-plugin:1.12.0'
    }
}

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'tomcat'
apply plugin: 'eclipse-wtp'
apply plugin: 'js'
apply plugin: 'css'

sourceCompatibility = 1.7
version = '1.0'

task wrapper(type: Wrapper) {
    gradleVersion = '2.0'
}

repositories {
    mavenCentral() // Allow access to the Maven Centeral Repo
}

dependencies {
    def tomcatVersion = '7.0.54'
    tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
            "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}"
    tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") {
        exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj'
    }
}
sourceSets {
    main {
        java {
            srcDirs 'src'
        }
    }
}
// End: Java Plugin Configuration

// Start: Tomcat Plugin Configuration
tomcatRun {
    httpPort = 8080
    stopPort = 8081
    URIEncoding = 'utf-8'
    webAppSourceDirectory = file('WebContent')
}
eclipse {
  wtp {
    component {
      contextPath = '/'
      deployName = 'client'
    }
  }
}

0 个答案:

没有答案