Jor*_*ire 14 java eclipse war gradle
我是Gradle的新手,所以我有可能在这里遗漏一些明显的东西.我正在使用Gradle来自动构建我们的项目.我已经解决了大部分问题,但其中一个问题让我无休止地陷入困境.由于这是我的公司,我不能分享任何真正的代码,但我会尽我所能提供逼真的伪代码.
我正在尝试使用flex前端和java后端编译Web应用程序.现在,我只专注于创建一个带有java的.war文件,然后我将进入flex编译.当我运行以下build.gradle脚本时,它给了我无数的"找不到符号"错误.
apply plugin: 'eclipse'
apply plugin: 'war'
sourceCompatibility = 1.6
repositories {
mavenCentral()
}
sourceSets.main.java.srcDir 'src'
sourceSets.main.resources.srcDir 'src'
webAppDirName = "WebContent"
war.archiveName "Gradle_test.war"
dependencies {
compile fileTree(dir: 'WebContent/WEB-INF/lib', include: '*.jar')
providedCompile 'org.apache.tomcat:catalina:6.0.13'
providedCompile 'org.apache.tomcat:dbcp:6.0.13'
}
Run Code Online (Sandbox Code Playgroud)
发生错误的一个示例(假包和类名称):
/Users/user/Documents/eclipse/ProjectName/src/com/companyName/teamName/projectName/core/release/subProjectName/projectVersion/RenamedObject.java:385: cannot find symbol
symbol : class OtherObject
location: class com.companyName.teamName.projectName.core.release.subProjectName.projectVersion.RenamedObject
public class InnerClass extends OtherObject implements Indexable<String>, Serializable {
Run Code Online (Sandbox Code Playgroud)
类InnerClass与RenamedObject类一起在RenamedObject.java文件中声明.它找不到的符号,OtherObject,不是来自.jar.它是存储在的源文件/Users/user/Documents/eclipse/ProjectName/src/com/companyName/teamName/projectName/core/release/subProjectName/projectVersion/superTypes/OtherObject.java.该对象在RenamedObject.java的顶部导入,可以通过eclipse构建和运行,无需任何特殊设置.gradle war从终端执行后,在:compileJava任务期间发生这些错误.
Gradle是否有任何理由处理来自这样的子包的源导入?我只是做错了吗?如果有更多信息可以提供帮助,请告诉我,如果可以,我会提供.
编辑:我得到了它的工作.所有130个错误都通过一次更改得以解决.如果我将完全限定的包名称添加到extends中的OtherObject,那么它看起来像这样:
public class InnerClass extends com.companyName.teamName.projectName.core.release.subProjectName.projectVersion.superTypes.OtherObject implements Indexable<String>, Serializable {
Run Code Online (Sandbox Code Playgroud)
这一改变使一切顺利,但我仍然不明白其中的原因.这不是项目中对OtherObject的唯一引用,它不是内部类扩展另一个源包中定义的类的唯一位置.
act*_*ota 11
无法使用Gradle分发' https://services.gradle.org/distributions/gradle-2.8-bin.zip ' 执行构建
...... .....
引起:org.gradle.api.internal.tasks.compile.CompilationFailedException:编译失败; 请参阅编译器错误输出以获取详细信
Gradle Build报告您应该检查编译器Java输出.
检查输出并查看它在输出中引用的哪个类名称无法解析.
symbol: class <referenced_classname_here
location: class <parent_classname_here
Run Code Online (Sandbox Code Playgroud)
提供完全限定的域名,无论您在哪里引用作为未解析的符号提及的类.
在我的例子中,我已经看到了这个,当我定义了一个内部类,它扩展了我在build.gradle中声明为依赖的库中的类.
PS:
我已经看到,对此问题的解决方案已被提及作为对OP问题的评论.
我找不到这个问题,因为它没有谷歌的正确关键词,也没有可接受的解决方案,这进一步降低了它的知名度.
结果这是一整天的浪费,在我意识到这个愚蠢的hackish解决方案之前拔掉了几股头发:( :(
我已尝试在Sun下与依赖项解析远程相关的所有内容来修复此"依赖性问题",这对我的代码库来说从来都不是问题.
希望Gradle团队在更多人拔头发之前尽快修复此问题.
顺便说一下......我喜欢Gradle.:)
| 归档时间: |
|
| 查看次数: |
19437 次 |
| 最近记录: |