我有兩個Maven模塊,AppManager和myApp。這些目錄位於本地的同一目錄中,並且在公司的在線回購中不可用,因爲它們用於測試目的。在IntelliJ中,我使用AppManager的字段和方法沒有問題,並且沒有錯誤消息。我在myApp的impl pom文件中導出com.mycompany.appManager。但是,當我在IDE之外構建時(即mvn clean install
),存在包com.mycompany.appManager
不存在的包的錯誤,然後爲appManager中定義的公用字段的使用未解決的符號關聯了錯誤。我該如何解決這個問題?我已經嘗試導出並添加依賴項,但這兩個解決方案不起作用。Maven構建失敗:包不存在
的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
請發佈您的pom.xml和完整的錯誤日誌。 –
缺少的包實際上是一個運行時依賴項,這就是爲什麼從命令行進行編譯失敗的原因。然而,Maven IntelliJ插件將忽略範圍規則,並且只是拉取每個依賴項,導致成功的編譯和運行。 –