繁体   English   中英

Maven构建失败:包不存在

[英]Maven build failure: package does not exist

我有两个maven模块,AppManager和myApp。 它们位于本地的同一目录中,并且在公司的在线仓库中不可用,因为它们用于测试目的。 在IntelliJ中,使用AppManager的字段和方法没有问题,也没有错误消息。 我在myApp的impl pom文件中导出com.mycompany.appManager。 但是,当我在IDE之外构建时,即mvn clean installcom.mycompany.appManager包中存在错误,然后在appManager中定义的公共字段的使用中存在未解析符号的关联错误。 我该如何解决这个问题? 我已尝试导出并添加依赖项,但这两个解决方案不起作用。

pom.xml中:

<moduleVersion>4.0.0</moduleVersion>
<parent>
    <groupId>com.myCompany</groupId>
    <artifactId>myApp</artifactId>
    <version>1.0-SNAPSHOT</version>
</parent>

<groupId>com.myCompany.myApp</groupId>
<artifactId>com.myCompany.myApp.impl</artifactId>
<packaging>bundle</packaging>
<name>My App Implementation</name>

<build>
    <plugins>
        <plugin>
             <groupId>org.apache.felix</groupId>
             <artifactId>maven-bundle-plugin</artifactId>
             <extensions>true</extensions>
             <configuration>
                 <instructions>
                     <Export-Package>
                          com.myCompany.appmanager
                     </Export-Package>
                     <Bundle-Activator>com.mycompany.myapp.impl.component</Bundle-Activator>
                 </instructions>
             </configuration>
         </plugin>
     </plugin>
 </build>

编译错误:

[ERROR] /root/Desktop/apps/myapp/impl/src/main/java/com/mycompany/myApp/impl/component.java:[11,49] package com.mycompany.appmanager does not exist
[ERROR] /root/Desktop/apps/myapp/impl/src/main/java/com/mycompany/myApp/impl/component.java:[64,49] cannot find symbol
    symbol: variable AppManagerModule
    location: class com/mycompany/myApp/impl/component

据我所知,我试着回答这个问题:

如果你有两个项目A和B而A取决于B,那么你必须先建立B。 如果您使用mvn clean install ,那么B.jar将被放入您的本地存储库。 之后,您可以针对它构建A(如果您在pom中选择了正确的版本)。

为了完整起见,如果你有两个项目A和B,A依赖于B,你还必须确保B项目中的代码存在于编译的jar中。 显然,如果希望它们可见,你必须在src / main / java(而不是src / test / java)中编写包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM