我有两个 Maven 模块:AppManager 和 myApp。它们位于本地同一目录中,并且在公司的在线存储库中不可用,因为它们用于测试目的。在 IntelliJ 中,我使用 AppManager 的字段和方法没有问题,并且没有错误消息。我正在 myApp 的 impl pom 文件中导出 com.mycompany.appManager 。但是,当我在 IDE 之外构建时,即mvn clean install
, 包有错误com.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 中选择了正确的版本)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)