Grails / Angular / Gradle:gradle-grails-plugin的资源加载问题?
我有一个带有 Angular 前端的 Grails 项目(名为web-grails的项目)。我们想要做的是将Angular组件(主要是JavaScript(js)和HTML文件)重构到它自己的项目(名为web-js-html)中,即将一个单独的JavaScript / HTML项目捆绑到一个jar中。
我们正在使用 Gradle 在多个构建中构建这两个项目。组装web-js-html,以便所有资源都在 META-INF / resources 下。这样,servlet 3.0容器会自动将它们放到类路径上,例如我们可以在web-grails的HTML文件中引用它们。像
这样的东西// file: web-grails/grails-app/views/index.gsp
<html>
<body>
...
<script src="webjars/gradle-multiproject/components/jquery/jquery-1.11.0.js"></script>
</body>
</html>
然后在引用的web-js-html项目的类路径中找到引用的jquery文件。
当我在独立的Tomcat 7.0.54中部署web-grails的战争时,一切正常,即加载引用的JavaScript文件并相应地加载页面。 但是,当我直接从gradle运行web-grails时,使用
gradle grails-run-app
无法找到/加载来自web-js-html项目的引用文件(我们收到404),例如:
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:8080/web-grails/webjars/gradle-multiproject/components/bootstrap/css/bootstrap.min.css
我们对Gradle的配置如下:
// web-grails/build.gradle
apply plugin: "grails"
repositories {
mavenLocal()
maven { url artifactory_url }
}
buildscript {
repositories {
mavenLocal()
maven { url artifactory_url }
}
dependencies {
classpath 'org.grails:grails-gradle-plugin:2.0.1'
}
}
grails {
grailsVersion = '2.3.8'
groovyVersion = '2.3.0'
}
dependencies {
bootstrap 'org.grails.plugins:tomcat:7.0.50'
compile "com.h2database:h2:1.3.173"
compile "org.grails.plugins:resources:1.2.7"
compile "org.grails.plugins:hibernate:3.6.10.13"
compile project(':web-js-html')
}
// web-js-html/build.gradle
apply plugin: 'java'
ext {
webjarconfig = [
staticHTMLFilesDir : "${projectDir}/src/main/webfrontend",
baseDir: "META-INF/resources/",
subDir : "webjars/" + deployed_app_name
]
}
jar {
from(fileTree(webjarconfig.staticHTMLFilesDir)) {
into webjarconfig.baseDir + webjarconfig.subDir
}
outputs.file archivePath
}
我不确定如何继续。 grails-gradle-plugin的源代码建议将必要的依赖项放在类路径上,当我在独立的Tomcat中部署war文件时(见上文所述),它确认了。
这是我身上的配置问题,即我是不是以正确的方式使用插件?或者这可能是插件中的问题/错误?我没有在https://github.com/grails/grails-gradle-plugin/issues
找到问题有什么想法吗?