我在tomcat上托管一个SpringBoot1.2.3应用程序,它动态编译和运行java类。
我有一个自定义类加载器,它使用Java Compiler Api在运行时编译和加载源代码。
现在我想在可编译的代码中允许第三方依赖。
我尝试使用URLClassLoader从jar文件加载依赖项。但是,部署在tomcat上时URLClassLoader不起作用,可能tomcat的安全策略禁止这样做。
我还尝试在应用程序本身中添加依赖项并使用自定义类加载器(它再次无法工作)共享它
e.g。 如果我想动态编译和运行以下代码
package a.test;
import a.AClass;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class ATestClass {
@Test
public void testMe() {
assertThat(1, is(new a.AClass().getOne()));
}
@Test
public void testMeAgain() {
assertThat(1, is(new AClass().getTwo()));
}
}
现在,我如何为编译提供JUnit依赖项?