Я новичок в Gradle, поэтому есть шанс, что я упустил что-то очевидное здесь. Я работаю над использованием Gradle для автоматизированного построения наших проектов. Я справился с большинством из них, но один из них вызывает у меня бесконечные неприятности. Поскольку это для моей компании, я не могу использовать какой-либо реальный код, но я сделаю все возможное, чтобы обеспечить реалистичный псевдокод.
Я пытаюсь скомпилировать веб-приложение с интерфейсом flex front-end и java. Прямо сейчас, я сосредоточен исключительно на создании файла .war с java в нем, тогда я перейду в компиляцию flex. Когда я запускаю следующий build.gradle script, он дает мне бесчисленные ошибки "не найти символ".
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'
}
Пример ошибок, которые произошли (с поддельными именами пакетов и классов):
/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 {
Класс InnerClass объявлен в файле RenamedObject.java вместе с классом RenamedObject. Символ, который он не может найти, OtherObject, не из .jar. Это исходный файл, хранящийся в /Users/user/Documents/eclipse/ProjectName/src/com/companyName/teamName/projectName/core/release/subProjectName/projectVersion/superTypes/OtherObject.java
. Объект импортируется вверху RenamedObject.java и может быть правильно создан и запущен через eclipse без каких-либо специальных настроек. Эти ошибки возникают во время задачи: compileJava после выполнения gradle war
из терминала.
Есть ли причина, по которой Gradle будет иметь проблему с обработкой импорта исходного кода из подпакета, как это? Я просто делаю что-то неправильно? Дайте мне знать, если есть какая-либо дополнительная информация, которая может помочь, и я предоставил ее, если смогу.
РЕДАКТОР: Я заработал. Все 130 ошибок были разрешены с одним изменением. Если я добавлю полное имя пакета в OtherObject в extends, это выглядит так:
public class InnerClass extends com.companyName.teamName.projectName.core.release.subProjectName.projectVersion.superTypes.OtherObject implements Indexable<String>, Serializable {
Это одно изменение заставило все это работать, но я до сих пор не понимаю причину. Это не единственная ссылка на OtherObject в проекте, и это не единственное место, где внутренний класс расширяет класс, определенный в другом исходном пакете.