1

I need to add jar generated from running application into same application classpath.

Flow - i have generated set of class files(packaged as jar) from WSDL using axis 2 from java .Now i need to access the .class file in generated jar on same java project.

I have used Build Tool Gradle Here is my code , to build jar for generated set of java files.

buildscript {
    ext {
        springBootVersion = '1.5.2.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'

version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}


dependencies {

sourceCompatibility = 1.8
bootRepackage {
    enabled = false
}
sourceSets {
    compile fileTree(dir:'C://Users//10Decoders//Downloads//axis2-1.7.4-bin//axis2-1.7.4//lib',include: '*.jar')
    preBuildSources
    main {
        java {
            srcDirs = ['../'+customProp]
              println "sourceSets -- > DONE ---"+customProp
        }
    }
}


task copypackage(type: Copy){
  println "COpy Jar to package - > "
  into  customProp
  from  customProp+'/src/'
}
jar {
  archiveName = customProp+'.jar'
    destinationDir = projectDir
    println "JAR BUILD---- > "
 }
}
task mydatafile(dependsOn:build){
    println "COpy Jar to claspath - > "+customProp
    doLast{

    copy{
  into  "../"
  from  customProp+'.jar'
    }
  }

}
build.dependsOn copypackage

Another Gradle file to build jar for current java application(Which has main function) Build.script 2

    buildscript {
        ext {
            springBootVersion = '1.5.2.RELEASE'
        }
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        }
    }

    apply plugin: 'java'
    apply plugin: 'eclipse'
    apply plugin: 'org.springframework.boot'

    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = 1.8

    dependencies {
     compile 'org.springframework:spring-support:2.0.8'
      compile 'org.springframework:spring-aop:4.1.2.RELEASE'
      compile 'org.springframework:spring-beans:4.1.2.RELEASE'
      compile 'org.springframework:spring-context:4.1.2.RELEASE'
      compile 'org.springframework:spring-core:4.1.2.RELEASE'
      compile 'com.squareup.okio:okio:1.11.0'
      compile 'com.squareup.okhttp3:okhttp:3.6.0'
      compile 'org.json:json:20160810'
      compile 'mysql:mysql-connector-java:5.1.38'
      compile 'org.apache.commons:commons-dbcp2:2.0.1'
      compile group: 'org.hibernate.javax.persistence', name: 'hibernate-jpa-2.0-api', version: '1.0.1.Final'
      compile group: 'log4j', name: 'log4j', version: '1.2.17'
      compile('org.springframework.boot:spring-boot-starter-jdbc')
        compile group: 'com.predic8', name: 'soa-model-core', version: '1.5.4'

        // https://mvnrepository.com/artifact/wsdl4j/wsdl4j
        compile group: 'wsdl4j', name: 'wsdl4j', version: '1.6.2'


        // https://mvnrepository.com/artifact/org.reflections/reflections
        compile group: 'org.reflections', name: 'reflections', version: '0.9.5-RC2'
    }
 jar {
      archiveName = 'batch.jar'
      destinationDir = projectDir
      manifest {
        attributes (
            'Main-Class': 'com.wsdl.migration.SpringWsdlFieldIdentification',
           'Class-Path': 'testAPP.jar  mydata/'+customProp+'.jar'
        )
      }
    }

    task copyLibs(type: Copy){
      println "buildDir- > "+buildDir

    }
    build.dependsOn copyLibs

Here customProp is variable to get the jar name dynamically while run the gradle build.(gradle build -P customProp=XXXXtask ).

BottomLine : I cannot able to access the classes from the dynamically generate jar.So the Question becomes - How can i add the jar file into running application on runtime??.Thanks in advance.

Dhinakar
  • 128
  • 14

0 Answers0