I have a maven project where in I included a jar that I created using gradle as a pom dependency. In that included Jar's code, I am referencing log4j logmanager. When I try to access a method in the external jar, it throws java.lang.NoClassDefFoundError on logmanager that the class inside the exernal jar is referring to.
build.gradle for exernal jar is:
plugins {
id 'java'
}
group 'com.somecompany.somethingelse'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.13.0'
implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.13.0'
}
I build the jar using gradle clean assemble
I install this jar locally in to .m2 using mvn install:install-file and then have a dependency of it in the pom for the consuming app.
I am not really sure what is going on here.
External Jar class code
package com.company.something;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public abstract class MyClass{
private static Logger logger = LogManager.getLogger();
public static String myMethod(String someInput){
logger.info("entered myMethod");
......some code goes here.....
}
}
Jar Consuming class code
import com.company.something.MyClass;
public class consumingClass{
public String consumingMethod(){
MyClass.myMethod("someinput");
return "something";
}
}