Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven Netbeans应用程序找不到ServiceProvider_Java_Maven_Netbeans - Fatal编程技术网

Java Maven Netbeans应用程序找不到ServiceProvider

Java Maven Netbeans应用程序找不到ServiceProvider,java,maven,netbeans,Java,Maven,Netbeans,设置: 在我们公司,我尝试将基于Ant的Netbeans应用程序迁移到Maven。 我有一个基于Maven的Netbeans平台应用程序和两个包含Netbeans模块的Maven模块POM项目 |API (POM project) |-APIModule |-MyService.java |Implementation (POM project) |-ImplModule (dependency on APIModule) |-MyServiceProvider.java (impl

设置: 在我们公司,我尝试将基于Ant的Netbeans应用程序迁移到Maven。 我有一个基于Maven的Netbeans平台应用程序和两个包含Netbeans模块的Maven模块POM项目

|API (POM project)
 |-APIModule
  |-MyService.java
|Implementation (POM project)
 |-ImplModule (dependency on APIModule)
  |-MyServiceProvider.java (implements MyService)
|Application (Maven Netbeans Platform Application) (dependency on API and Implementation)
 |-branding
 |-netbeans-app (the application)
 |-viewer
  |-MyViewer.java (calls Lookup.getDefault().lookup(MyService.class)
API和实现是使用
pom
构建的,依赖项是使用

    <dependencies>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>mavenprojectapi</artifactId>
            <version>${project.version}</version>
            <type>pom</type>
        </dependency>
    </dependencies>

${project.groupId}
),但那不是我想要的

问题:如何找到通过查找和ServiceProvider定义的服务实现,这些服务实现是在其他模块套件中定义的

更新:似乎没有从实现项目加载可传递的依赖项。我可以做的是定义一个Netbeans聚合模块,该模块对所有实现模块都有显式依赖关系,并在我的应用程序中将其声明为直接依赖关系。通过这种方式加载可传递依赖项并找到服务提供者


不过,我想要的是在基于Ant的项目中复制“导入集群”功能。中描述了一些目标,集群是为单个模块构建的,但我不知道如何访问它们。有什么想法吗?

将实现模块的模块类型更改为“渴望”

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>nbm-maven-plugin</artifactId> 
    ...
    <configuration>
        <moduleType>eager</moduleType>
        ...
    </configuration>
</plugin>

org.codehaus.mojo
nbm maven插件
...
渴望的
...

将实施模块的模块类型更改为“渴望”

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>nbm-maven-plugin</artifactId> 
    ...
    <configuration>
        <moduleType>eager</moduleType>
        ...
    </configuration>
</plugin>

org.codehaus.mojo
nbm maven插件
...
渴望的
...

遗憾的是,这并没有解决问题。我编辑并更新了我的问题。遗憾的是,这并没有解决这个问题。我编辑并更新了我的问题。