I use Gradle and Tomcat plugin to deploy my Java web application to Tomcat. gradle war works fine, but when I execute gradle tomcatRun --info, I get error "No global global web.xml found" and building stops on 75%.
My build.gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.bmuschko:gradle-tomcat-plugin:2.0'
}
}
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'com.bmuschko.tomcat'
// JDK version source compatibility
sourceCompatibility = 1.8
// project version
version = '1.0'
// War file name
war.baseName = 'jcg-gradle-war-example'
// Web directory, this overrides the default value "webapp"
project.webAppDirName = 'WebContent'
project.buildDir = 'WebContent/WEB-INF/classes'
sourceSets {
main {
java {
srcDir 'src/pack'
}
resources {
srcDir 'src/resources'
}
}
}
configurations {
moreLibs
}
war {
from 'src/pack' // adds a file-set to the root of the archive
webInf { from 'WebContent/WEB-INF' } // adds a file-set to the WEB-INF dir.
classpath fileTree('WebContent/WEB-INF/lib') // adds a file-set to the WEB-INF/lib dir.
classpath configurations.moreLibs // adds a configuration to the WEB-INF/lib dir.
webXml = file('WebContent/WEB-INF/web.xml') // copies a file to WEB-INF/web.xml
}
repositories {
mavenCentral()
}
dependencies {
def tomcatVersion = '8.0.33'
tomcat 'org.apache.tomcat.embed:tomcat-embed-core:8.0.33',
'org.apache.tomcat.embed:tomcat-embed-logging-juli:8.0.33'
tomcat('org.apache.tomcat.embed:tomcat-embed-jasper:8.0.33') {
exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj'
}
}
tomcatRun {
webDefaultXml = file("WebContent/WEB-INF/web.xml")
httpPort = 8080
httpsPort = 8091
enableSSL = true
}
tomcatRun.contextPath = '/'
tomcatRunWar.contextPath = '/'
Project folders:
TestGradle
---.gradle
---.setting
---src
------main
------pack
---------AAA.java
------resources
---------main
---WebContent
------META-INF
------WEB-INF
---------classes
---------lib
---------web.xml
------index.jsp
---.classpath
---.project
---build.gradle
And this is gradle tomcatRun results:
D:\My Documents\Workspase_EE\TestGradle>gradle tomcatRun --info
Starting Build
Settings evaluated using settings file 'D:\master\settings.gradle'.
Projects loaded. Root project using build file 'D:\My Documents\Workspase_EE\Te
tGradle\build.gradle'.
Included projects: [root project 'TestGradle']
Evaluating root project 'TestGradle' using build file 'D:\My Documents\Workspas
_EE\TestGradle\build.gradle'.
All projects evaluated.
Selected primary task 'tomcatRun' from project :
Tasks to be executed: [task ':compileJava', task ':processResources', task ':cl
sses', task ':tomcatRun']
:compileJava (Thread[main,5,main]) started.
:compileJava
file or directory 'D:\My Documents\Workspase_EE\TestGradle\src\main\java', not
ound
file or directory 'D:\My Documents\Workspase_EE\TestGradle\src\main\java', not
ound
Skipping task ':compileJava' as it is up-to-date (took 0.065 secs).
:compileJava UP-TO-DATE
:compileJava (Thread[main,5,main]) completed. Took 0.159 secs.
:processResources (Thread[main,5,main]) started.
:processResources
file or directory 'D:\My Documents\Workspase_EE\TestGradle\src\main\resources',
not found
Skipping task ':processResources' as it has no source files.
:processResources UP-TO-DATE
:processResources (Thread[main,5,main]) completed. Took 0.02 secs.
:classes (Thread[main,5,main]) started.
:classes
Skipping task ':classes' as it has no actions.
:classes UP-TO-DATE
:classes (Thread[main,5,main]) completed. Took 0.013 secs.
:tomcatRun (Thread[main,5,main]) started.
:tomcatRun
Executing task ':tomcatRun' (up-to-date check took 0.001 secs) due to:
Task.upToDateWhen is false.
Configuring Tomcat for root project 'TestGradle'
Default web.xml = D:\My Documents\Workspase_EE\TestGradle\WebContent\WEB-INF\we
.xml
HTTP protocol handler classname = org.apache.coyote.http11.Http11Protocol
HTTPS protocol handler classname = org.apache.coyote.http11.Http11Protocol
Webapp source directory = D:\My Documents\Workspase_EE\TestGradle\WebContent
Resolved Tomcat 8x server implementation in classpath
web app loader classpath = D:\My Documents\Workspase_EE\TestGradle\WebContent\W
B-INF\classes\classes\main;D:\My Documents\Workspase_EE\TestGradle\WebContent\W
B-INF\classes\resources\main
Creating SSL certificate
Created SSL certificate
Initializing ProtocolHandler ["http-bio-8080"]
Initializing ProtocolHandler ["ajp-bio-8009"]
Initializing ProtocolHandler ["http-bio-8091"]
Starting service Tomcat
Starting Servlet Engine: Apache Tomcat/8.0.33
No global web.xml found
At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug loggi
g for this logger for a complete list of JARs that were scanned but no TLDs wer
found in them. Skipping unneeded JARs during scanning can improve startup time
and JSP compilation time.
Starting ProtocolHandler ["http-bio-8080"]
Starting ProtocolHandler ["ajp-bio-8009"]
Starting ProtocolHandler ["http-bio-8091"]
Started Tomcat Server
The Server is running at http://localhost:8080
> Building 75% > :tomcatRun
I know, I'm a little bit stupid, but I have been fighting with this a few days:) I use Eclipse EE, Tomcat 8.0.33, Gradle-2.12.
P.S. Sorry for my English:)