@xemniz

Как скомпилировать Java код с помощью Gradle?

Поставил Intellij, хочу открыть TightVNC сорс код, при открытии выдает ошибку с текстом

Cause: startup failed: build file 'C:\!!!\tvnjviewer-2.7.2\build.gradle': 80: unable to resolve class org.apache.ivy.plugins.resolver.FileSystemResolver @ line 80, column
13. add(new org.apache.ivy.plugins.resolver.FileSystemResolver()) { ^ 1 error


прикрепляю код Gradle файла. подскажите куда копать, что за плагин, что с ним не так

apply plugin:'java'
apply plugin: 'eclipse'

sourceCompatibility = 1.6
targetCompatibility = 1.6
version = '2.7.2'

project.ext.baseName = 'tightvnc-jviewer'
def buildNo = processBuildNo(version)

defaultTasks 'clean', 'dist'

configurations {
    viewerSwingCompile { extendsFrom compile }
    viewerSwingRuntime { extendsFrom viewerSwingCompile, runtime }
}

sourceSets {
    viewerSwing {
        java {
            srcDir 'src/viewer_swing/java'
        }
        resources {
            srcDir 'src/viewer_swing/resources'
        }
    }
    main {
        java.srcDirs += viewerSwing.java.srcDirs
        resources.srcDirs += viewerSwing.resources.srcDirs
    }
}

repositories {
    flatDir {
        dirs 'src/libs/'
    }
}

dependencies {
    viewerSwingCompile group: 'com.jcraft', name: 'jsch', version: '0.1.+', ext: 'jar'
    viewerSwingRuntime configurations.viewerSwingCompile
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

def manifestAttributes = ['Main-Class': 'com.glavsoft.viewer.Viewer',
        'Implementation-Version': "${project.version} (${buildNo})",
        'Implementation-Title': 'TightVNC Viewer',
        'Implementation-Vendor': 'GlavSoft LLC.']

jar {
    baseName = project.baseName
    version = null
    manifest {
        attributes manifestAttributes
    }
    def runtimeDeps = configurations.viewerSwingRuntime.collect {
        it.isDirectory() ? it : zipTree(it)
    }
    from(runtimeDeps) {
        exclude 'META-INF/**'
    }
}

task noSshJar (type: Jar, dependsOn: classes) {
    baseName = 'nossh/' + project.baseName
    version = null
    manifest {
        attributes manifestAttributes
    }
    from sourceSets.main.output
}

artifacts {
    archives file('src/web/viewer-applet-example.html')
    archives noSshJar
}

uploadArchives {
    repositories {
        add(new org.apache.ivy.plugins.resolver.FileSystemResolver()) {
            addArtifactPattern("$projectDir/dist/${project.baseName}-${project.version}/[artifact].[ext]")
        }
    }
    uploadDescriptor = false
}

task dist(dependsOn: uploadArchives)

def processBuildNo(currentVersion) {
    final String VERSION = 'version'
    final String BUILD = 'build'

    def lastVersion = currentVersion
    def lastBuild = 0
    def buildNoFile = new File('.build_no')
    if ( ! buildNoFile.exists()) {
        buildNoFile.createNewFile()
        buildNoFile << "${VERSION}=${lastVersion}\n${BUILD}=${lastBuild}"
    }
    def versions = [:]
    buildNoFile.eachLine {
        def splitted = it.split('=')
        if (splitted.size() == 2) {
            def (key, value) = splitted
            switch(key.trim()) {
                case VERSION:
                    lastVersion = value.trim()
                    break
                case BUILD:
                    try {
                        lastBuild = value != null ? value.trim() as Integer : 0
                    } catch (NumberFormatException) {}
                    versions[lastVersion] = lastBuild
                    break
            }
        }
    }
    lastVersion = versions[currentVersion]
    if (null == lastVersion) {
        versions[currentVersion] = 0
    }
    ++versions[currentVersion]
    def outString = ''
    versions.each { v, b ->
        outString += "${VERSION}=${v}\n${BUILD}=${b}\n\n"
    }
    buildNoFile.write(outString)
    versions[currentVersion]
}
  • Вопрос задан
  • 1032 просмотра
Решения вопроса 1
badprogrammist
@badprogrammist
Senior java developer
Версия Gradle не соответствует. Почитайте вот здесь https://docs.gradle.org/1.8/release-notes . Нужно
add(new org.apache.ivy.plugins.resolver.FileSystemResolver()) {
            addArtifactPattern("$projectDir/dist/${project.baseName}-${project.version}/[artifact].[ext]")
        }
поменять на
ivy {
        artifactPattern '$projectDir/dist/${project.baseName}-${project.version}/[artifact].[ext]'
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
06 мая 2024, в 10:17
15000 руб./за проект
06 мая 2024, в 10:02
3000 руб./за проект