在构建我们的多模块项目时,Maven发出了一个奇怪的警告.我只是在另一个项目中引用同一项目的jar和test-jar.两个依赖项都有测试范围.我正在运行Maven 3.3.1并且无法轻松升级版本.
你有没有人知道如何在没有得到maven警告的情况下解决问题?
ProjectA的pom.xml:
<dependency> <!-- This is line 130 -->
<groupId>${project.groupId}</groupId>
<artifactId>projectB</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>projectB</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
来自maven的警告(匿名):
[警告]在为org.group.ProjectA构建有效模型时遇到一些问题:1.0-SNAPSHOT [警告]'dependencies.dependency.(groupId:artifactId:type:classifier)'必须是唯一的:$ {project.groupId} :org.group.ProjectB:jar - >版本$ {project.version}的重复声明@ org.group.ProjectA,/ var/lib/jenkins/jobs/nicejob /workspace/org.group.ProjectA/pom.xml,第130行,第15栏
是否有配置反射库的解决方案,以便它也扫描在运行时使用 URLClassLoader 添加的 JAR?
现在,反射只是扫描 ClassLoader 中的 URL。这是我现在使用的配置:
Reflections reflections = new Reflections(new ConfigurationBuilder().setUrls(ClasspathHelper.forClassLoader()));
Run Code Online (Sandbox Code Playgroud)
我在反射库的文档中找不到任何提示。
编辑: 这就是我加载 jar 文件的方式:
File f = new File("C:/Users/mkorsch/Desktop/test-reflections.jar");
URLClassLoader urlCl = new URLClassLoader(new URL[] {f.toURI().toURL()},System.class.getClassLoader());
Run Code Online (Sandbox Code Playgroud)