我正在尝试使用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'
}
}
}