Geben Sie den Krieg in gradle ist tomcatRunWar

Ich Spiele mit dem tomcat plugin für gradle und in meinem build/tmp/tomcatRun/Arbeit/Tomcat/localhost/myWebApp Verzeichnis seiner leere. Gibt es eine Möglichkeit für mich, um den Speicherort anzugeben, von meinem Krieg bereitstellen?

Versuchte ich

[tomcatRun, tomcatRunWar]*.destinationDir= new File("$buildDir/libs").getAbsoluteFile().getPath()

und

[tomcatRun, tomcatRunWar]*.warDirectory= new File("$buildDir/libs").getAbsoluteFile().getPath()

Update

Habe ich die build-Skripte unter. Wenn ich meine neuen Aufgaben, die ich habe ausgeführt

gradle build integrationTest

Hier ist ein Ausschnitt aus der übergeordneten bauen.gradle:

buildscript {
    repositories {
        add(new org.apache.ivy.plugins.resolver.URLResolver()) {
            name = 'GitHub'
            addArtifactPattern 'http://cloud.github.com/downloads/[organisation]/[module]/[module]-[revision].[ext]'
        }
    }

    dependencies {
        classpath 'bmuschko:gradle-tomcat-plugin:0.9.2'
    }

}

allprojects {
  apply plugin: "java"
  apply plugin: "eclipse"
  apply plugin: "idea"

  ext.springVersion = "3.1.1.RELEASE"
  ext.hibernateVersion = "3.6.7.Final"
  ext.mysqlVersion = "5.1.20"
  ext.tomcatVersion = "7.0.26"
  ext.junitVersion = "4.10"
  ext.httpClientVersion = "4.2"
  ext.pdfboxVersion = "1.7.1"
  ext.resxWebserviceVersion = "10.4.2"

  loadConfiguration()
}

und meine webapps zu bauen.gradle:

apply plugin: "maven"
apply plugin: "war"
apply plugin: "tomcat"

def now = new Date()

def cssDir = new File("truexpense-web/src/main/webapp/css").getAbsoluteFile().getPath()
def minCssName = 'all-min.css'
def jsDir = new File("truexpense-web/src/main/webapp/js").getAbsoluteFile().getPath()
def minJsName = 'all-min.js'

ext.requestor = ''
ext.fromAddress = ''
ext.replyAddress = ''
ext.formattedDate = now.format('dd MMM yyy HH:mm')
ext.product = 'Truexpense'

configurations {
  deployerJars
  jasper
  mail
}

dependencies {

  //Compile time but not included dependencies
  providedCompile "javax.servlet:javax.servlet-api:3.0.1"
  providedCompile "org.apache.tomcat:tomcat-jdbc:$tomcatVersion"

  //Compile time dependencies
  compile project(":truexpense-domain")
  compile project(":truexpense-repository")
  compile project(":truexpense-service")
  compile "org.springframework:spring-core:$springVersion"
  compile "org.springframework:spring-web:$springVersion"
  compile "org.hibernate:hibernate-core:$hibernateVersion"
  compile "org.hibernate:hibernate-envers:$hibernateVersion"
  compile "org.hibernate:hibernate-ehcache:$hibernateVersion"
  compile "org.hibernate:hibernate-validator:4.2.0.Final"
  compile "commons-io:commons-io:2.3"
  compile "commons-codec:commons-codec:1.6"
  compile "org.springframework.security:spring-security-core:3.1.0.RELEASE"
  compile "org.springframework.security:spring-security-config:3.1.0.RELEASE"
  compile "org.springframework.security:spring-security-web:3.1.0.RELEASE"
  compile "javax.mail:mail:1.4"
  compile "mysql:mysql-connector-java:$mysqlVersion"
  compile "com.google.visualization:visualization-datasource:1.0.2"
  compile "org.ostermiller:utils:1.07.00"
  compile "net.sf.ofx4j:ofx4j:1.4"
  compile "org.jpedal:jbig2:1"
  compile "org.apache.pdfbox:txp-fontbox:$pdfboxVersion"
  compile "org.apache.pdfbox:txp-jempbox:$pdfboxVersion"
  compile "org.apache.pdfbox:txp-pdfbox:$pdfboxVersion"
  compile "taglibs:taglibs-unstandard:1"
  compile "org.codehaus.jackson:jackson-mapper-asl:1.9.7"
  compile "org.apache.httpcomponents:httpclient:$httpClientVersion"

  //Runtime only dependencies
  runtime "commons-beanutils:commons-beanutils-core:1.8.3"
  runtime "joda-time:joda-time:2.1"
  runtime "org.springframework.security:spring-security-taglibs:3.1.0.RELEASE"
  runtime "org.springframework:spring-beans:$springVersion"
  runtime "org.springframework:spring-context:$springVersion"
  runtime "org.springframework:spring-core:$springVersion"
  runtime "org.springframework:spring-expression:$springVersion"
  runtime "org.springframework:spring-instrument:$springVersion"
  runtime "org.springframework:spring-instrument-tomcat:$springVersion"
  runtime "org.springframework:spring-jdbc:$springVersion"
  runtime "org.springframework:spring-jms:$springVersion"
  runtime "org.springframework:spring-orm:$springVersion"
  runtime "org.springframework:spring-oxm:$springVersion"
  runtime "org.springframework:spring-tx:$springVersion"
  runtime "org.springframework:spring-web:$springVersion"
  runtime "org.springframework:spring-webmvc:$springVersion"
  runtime ("commons-fileupload:commons-fileupload:1.2.2") {
    exclude group: "javax.servlet", module: "javax.servlet-api"
    exclude group: "portlet-api"
  }
  runtime ("javax.servlet:jstl:1.2") {
    exclude group: "javax.servlet", module: "javax.servlet-api"
    exclude group: "javax.servlet", module: "jsp-api"
  }

  //Test only dependencies
  tomcat "org.apache.tomcat:tomcat-dbcp:${tomcatVersion}"
  tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
         "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}"
  tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") {
      exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj'

  }

  //Deployments
  deployerJars "org.apache.maven.wagon:wagon-http:1.0-beta-2"

  [tomcatRun, tomcatRunWar]*.httpPort = 8090
  [tomcatRun, tomcatStop]*.stopPort = 8081
  [tomcatRun, tomcatStop]*.stopKey = 'stopKey'

  task integrationTest(type: Test) {
      include '**/*IntegrationTest.*'

      doFirst {
          tomcatRun.daemon = true
          tomcatRun.execute()
      }

      doLast {
          tomcatStop.execute()
      }
  }

  test {
      exclude '**/*IntegrationTest.*'
  }

}


war {
  baseName='truexpense'
  eachFile {
    if (it.name == 'login_css_include.jsp') {
      it.expand(loginCSS: "login-min.css?t=${now.getTime()}")
    }
    else if (it.name == 'all_css_include.jsp') {
      it.expand(allCSS: "all-min.css?t=${now.getTime()}")
    }
    else if (it.name == 'all_js_include.jsp') {
      it.expand(allJS: "all-min.js?t=${now.getTime()}")
    }
  }
}

task deploy << { deploy() }

task minifyCSS << {
  def files = fileTree(dir: "${cssDir}", includes: [
    "analysis.css",
    "header.css",
    "footer.css",
    "blocks.css",
    "chosen.css",
    "grids.css",
    "space.css",
    "dataTables.css",
    "newCore.css",
    "core.css",
    "skin_clean.css",
    "plugins.css",
    "css3.css",
    "jquery-ui.css",
    "jquery.lightbox-0.5.css",
    "jqueryFileTree.css",
    "jquery.qtip.css",
    "expense.css",
    "report.css",
    "zentab.css"
  ]).getFiles().sort({it.name})
  concatenate("${cssDir}/all.css", files)
  yuiCompressor("${cssDir}/all.css", "${cssDir}/${minCssName}")
  yuiCompressor("${cssDir}/login.css", "${cssDir}/login-min.css")
}

task minifyJS << {
  def files = fileTree(dir: "${jsDir}", excludes:[
    'all*.js',
    'jqtouch*.js'
  ]).getFiles().sort({it.name})
  concatenate("${jsDir}/all.js", files)
  yuiCompressor("${jsDir}/all.js", "${jsDir}/${minJsName}")
}

def yuiCompressor(from, to) {
  ant.java(jar:"tools/yuicompressor-2.4.7.jar", fork: true, failonerror: true) {
    arg(value: from)
    arg(value: "-o")
    arg(value: to)
  }
}

def concatenate(filePath, files) {
  File file = new File(filePath)
  if (file.exists()) {
    file.write("")
  }
  files.each { File f ->
    file.append(f.getText() + '\n')
  }
}

def deploy() {
  println "Deleting ${tomcatHome}/webapps/${war.baseName}"
  delete "${tomcatHome}/webapps/${war.baseName}"
  println "Deleting ${tomcatHome}/work/Catalina/localhost/${war.baseName}"
  delete "${tomcatHome}/work/Catalina/localhost/${war.baseName}"
  println "Copying ${war.archiveName} to ${tomcatHome}/webapps"
  copy {
    from war.archivePath
    into "${tomcatHome}/webapps"
  }
}
Sind Sie versuchen zu bauen der war-Datei und stellen Sie es auf einem externen Tomcat-container?
Nein, wir haben einen Pfad bereitstellen, die Kopien aus dem Krieg.archivePath, um unseren tomcat-home. Mein Ziel hierbei ist es, für integration testing. Wenn meine integration task ausgeführt wird tomcatRun und ich bekomme eine exception "java.io.FileNotFoundException: Konnte nicht geöffnet werden ServletContext Ressourcen [/WEB-INF/classes/applicationContext.xml]" Wenn ich mir in der Arbeit oben genannten Verzeichnis nichts bereitgestellt wird. Bitte lassen Sie mich wissen, wenn Sie weitere Fragen haben!
Sorry, aber ich verstehe immer noch nicht, was Sie versuchen zu erreichen. Die Aufgaben tomcatRun und tomcatRunWar haben nicht die Eigenschaften destinationDir und warDirectory Sie versuchen, zu legen. Können Sie Ihre vollständige build-Skript? Wenn Sie finden Sie auf dem Tomcat-home bedeutet das, dass eine lokale Tomcat-installation ist betroffen?
Ok, ich habe die build-Skripte. Ich hoffe, das hilft!
Das Verzeichnis build/tmp/tomcatRun wird erstellt, indem die eingebettete Tomcat-Umsetzung. Es ist nicht unbedingt eine explodierte war-Datei-Struktur. Das Tomcat-plugin Punkte, um die web-app classpath intern zur Laufzeit. Betrifft dieses Problem nur auftreten, wenn Sie versuchen zum ausführen der Integrationstests oder im Allgemeinen, wenn Sie Sie ausführen tomcatRun? Beim laufen gradle war macht die war-Datei enthalten, die Spring-context-Datei?

InformationsquelleAutor Ann Addicks | 2012-06-25

Schreibe einen Kommentar