【发布时间】:2015-10-05 17:29:23
【问题描述】:
我有一个有点难以解释的问题,但我会尽力做到这一点。如果您不了解任何内容或需要更多信息,请随时提问。 :)
我有一个使用 java 插件框架的 java 项目。这意味着我正在我的项目的类路径中搜索具有特定结构的项目。 我有两个项目具有这种所需的结构,并作为依赖项包含在主项目 pom.xml 中:
<dependency>
<groupId>package</groupId>
<artifactId>One</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>package</groupId>
<artifactId>Two</artifactId>
<version>1.0</version>
</dependency>
我正在通过 ServiceLoader 检索可用的类:
loader = ServiceLoader.load(ISomeInterface.class);
loader.iterator();
我的问题是,ServiceLoader.load 调用只传递我的 pom.xml 中首先提到的项目。
你们有没有人有类似的经历或者可以帮助我解决这个问题?
提前致谢, 洛里斯
【问题讨论】:
-
在运行时两个依赖项都存在并且可以通过当前线程的类加载器访问?
-
不,如果我使用 eclipse 运行我的应用程序,一切都会像魅力一样。如果我使用 maven 构建项目,它只会找到 pom.xml 中首先提到的项目。有趣的是,这两个项目的每个类都包含在最终的 jar 文件中。
-
可能是类加载器问题?您的构建可以访问不同的类路径树。 > cwiki.apache.org/confluence/display/MAVEN/… > stackoverflow.com/questions/4443345/maven-plugin-classloading > trasahin.blogspot.de/2011/11/… 只是猜测...
-
感谢您的猜测,但我无法让它工作。仍在寻找解决方案...
标签: java maven plugins module dependencies