Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Migrating from existing dynamic web project to gradle

I am having an existing java dynamic web project which I created using eclipse. I usually just create a war file via eclipse and then deploy it to tomcat.

Now I want to use Gradle to build my project and create the war file. Is there an eclipse plugin to do that? If not then how can I use gradle with my existing project? My existing project structure is what you get when you create a dynamic web project via eclipse and I don't want to change it.

I have tried going through tutorials and using converting to Gradle project using gradle plugin. Can someone atleast point to a blog or tutorial or a way to start things?

   MyProject
    |java resources
    |--src
    |-- -- packages
    |-- -- .properties files
    |--test
    |-- -- packages
    |build
    |-- classes
    |WebContent
    |-- MetaINF
    |-- WEB-INF
    |-- -- lib // all my libraries are here. there is no specific repo for now
    |-- -- web.xml

My build.gradle :

apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'war'


sourceCompatibility = 1.7
targetCompatibility = 1.7


version = '2.0'

war {

baseName = 'Gradle'
version = '1.2'
}
repositories {
mavenCentral()
}

repositories {
flatDir {
   dirs 'lib'
   }
}

dependencies {
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
testCompile group: 'junit', name: 'junit', version: '4.+'

compile files('./lib/myjar.jar')    
compile 'commons-codec:commons-codec:1.5'

compile 'commons-lang:commons-lang:2.6'
compile 'org.hibernate:hibernate-entitymanager:4.3.8.Final'
compile 'org.apache.axis2:axis2-kernel:1.6.2'
compile 'org.apache.axis2:axis2-adb:1.6.2'
compile 'com.sun.jersey:jersey-server:1.19'
compile 'com.sun.jersey:jersey-client:1.19'
compile 'log4j:log4j:1.2.17'
compile 'org.apache.axis2:axis2-transport-local:1.6.2'
compile 'org.apache.axis2:axis2-transport-http:1.6.2'
providedCompile 'javax.servlet:servlet-api:2.3'



testCompile 'junit:junit:4.9'
testCompile 'org.jmock:jmock:2.6.0'
testCompile 'org.jmock:jmock-junit4:2.6.0'
testCompile 'org.jmock:jmock-legacy:2.6.0'



}

test {
systemProperties 'property': 'value'
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <display-name>Gradle</display-name>
<servlet>
    <servlet-name>HTTP REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    //in the above line It is showing a warning: servlet-class references to non-existent class "com.sun.jersey.spi.container.servlet.ServletContainer"
    <init-param>
       <param-name>com.sun.jersey.config.property.packages</param-name>
       <param-value>org.gradle</param-value>
   </init-param>

    <load-on-startup>1</load-on-startup>


</servlet>
<servlet-mapping>
    <servlet-name>HTTP REST Service</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

My proj structure Project Structure

like image 703
Jenny Avatar asked Apr 08 '15 15:04

Jenny


People also ask

How do I convert an existing project to gradle?

To convert a Java project to use Gradle, select Gradle Add Gradle Nature from the context menu of the project. Run the 'gradle init' task to create the initial Gradle files, in case you do not have them yet.

How do I export a dynamic Web project in Eclipse?

2 Export Dynamic Web Project to WAR File In the Eclipse Neon Project Explorer, right-click on the project name and select Export > WAR file from the context menu. For more information on WAR files, see The Java EE 5 Tutorial on Web Modules by Oracle.

How do I change from Maven to Gradle?

To convert Maven to Gradle, the only step is to run gradle init in the directory containing the POM. This will convert the Maven build to a Gradle build, generating a settings. gradle file and one or more build. gradle files.


1 Answers

Here's a minimal build.gradle file that should get you going. Build with the command gradle war.

apply plugin: 'war'

// See http://gradle.org/docs/current/userguide/war_plugin.html
//   Section 26.5. Convention properties
webAppDirName = 'WebContent'

// See http://gradle.org/docs/current/userguide/java_plugin.html
//   Section 23.4.1. Changing the project layout
sourceSets {
    main {
        // where does the Java source code live?
        java {
            srcDir 'Java Resources/src'
        }

        // where do classpath resources like *.properties files live?
        resources {
            srcDir 'Java Resources/src'
        }
    }
}

// See http://gradle.org/docs/current/userguide/dependency_management.html
//   Section 51.4.4. File dependencies
dependencies {
    // Where do the JARs live on the filesystem?
    compile fileTree(dir: "${webAppDirName}/WEB-INF/lib", include: '*.jar')
}
like image 187
dnault Avatar answered Oct 15 '22 03:10

dnault