title: How to resolve 'package not found' error when building using gradle?
body: <p>I am trying to build TightVNC Java Viewer from source (I downloaded official version from here: <a href="http://www.tightvnc.com/download.php" rel="nofollow">http://www.tightvnc.com/download.php</a>).</p>
  
  <p>When building using provided gradle file, I get this error: package com.jcraft.jsch does not exist.</p>
  
  <p>File 'src/libs/jsch-0.1.50.jar' exists in the project. I cannot figure out why it doesn't compile, since it is included in the build.gradle file. I am building using gradle build command. What am I missing?</p>
  
  <p>This is provided build gradle file, as originally provided in the gradle package:</p>
  
  <pre><code>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 &lt;&lt; "${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 -&gt;
          outString += "${VERSION}=${v}\n${BUILD}=${b}\n\n"
      }
      buildNoFile.write(outString)
      versions[currentVersion]
  }
  </code></pre>