我有一个多模块项目,我正在STS 3.8.4(eclipse neon.3)中开发。 到目前为止我有4个项目。 A,B,C.A是父母。 B& C. A使用pom包装。 C依赖于B.我也在运行Apache Archiva存储库。我已经使用" mvn deploy"成功地将所有3个模块部署到Archiva。在模块C的项目中,B显示在Maven Dependencies a B而不是B-x.y.jar中。在构建路径中,库,B显示子条目 访问规则 本地图书馆位置
其他jar文件也显示 来源附件 Javadoc位置 外部注释
在模块C中,找不到模块B的依赖关系。
A / pom.xml包含
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
</parent>
<name>A/name>
<groupId>project</groupId>
<artifactId>A</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
...
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-webdav-jackrabbit</artifactId>
<version>2.10</version>
</extension>
</extensions>
</build>
<repositories>
<repository>
<id>snapshots</id>
<url>http://localhost:8080/repository/snapshots/</url>
</repository>
<repository>
<id>internal</id>
<url>http://localhost:8080/repository/internal/</url>
</repository>
</repositories>
<distributionManagement>
<snapshotRepository>
<id>snapshots</id>
<url>http://localhost:8080/repository/snapshots/</url>
</snapshotRepository>
<repository>
<id>internal</id>
<url>http://localhost:8080/repository/internal/</url>
</repository>
</distributionManagement>
B / pom.xml包含
<parent>
<relativePath>../A/pom.xml</relativePath>
<groupId>project</groupId>
<artifactId>B</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<name>B</name>
<artifactId>B</artifactId>
<packaging>jar</packaging>
...
<repositories>
<repository>
<id>snapshots</id>
<url>http://localhost:8080/repository/snapshots/</url>
</repository>
<repository>
<id>internal</id>
<url>http://localhost:8080/repository/internal/</url>
</repository>
</repositories>
<distributionManagement>
<snapshotRepository>
<id>snapshots</id>
<url>http://localhost:8080/repository/snapshots/</url>
</snapshotRepository>
<repository>
<id>internal</id>
<url>http://localhost:8080/repository/internal/</url>
</repository>
</distributionManagement>
C / pom.xml包含
<parent>
<relativePath>../A/pom.xml</relativePath>
<groupId>project</groupId>
<artifactId>A</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<name>C</name>
<artifactId>C</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>project</groupId>
<artifactId>B</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
...
<repositories>
<repository>
<id>snapshots</id>
<url>http://localhost:8080/repository/snapshots/</url>
</repository>
<repository>
<id>internal</id>
<url>http://localhost:8080/repository/internal/</url>
</repository>
</repositories>
<distributionManagement>
<snapshotRepository>
<id>snapshots</id>
<url>http://localhost:8080/repository/snapshots/</url>
</snapshotRepository>
<repository>
<id>internal</id>
<url>http://localhost:8080/repository/internal/</url>
</repository>
</distributionManagement>
另外,我注意到一个&#34; mvn包&#34;在生成的jar文件中不包含目标类。它只包含依赖的jar文件。这是B / pom.xml的部分。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-webdav-jackrabbit</artifactId>
<version>2.10</version>
</extension>
</extensions>
</build>
答案 0 :(得分:0)
从pom中取出所有弹簧靴的东西。我把类移出了BOOT-INF / classes。我不得不从有效的pom中添加更多插件到真正的pom,所以我可以删除spring-boot-maven-plugin。
我相信这也解决了我在解决项目C中项目B的类时遇到的问题。
在项目C的maven依赖项中没有看到B-x.y.jar的问题就是eclipse的工作方式。条目旁边的图标是文件夹图标而不是jar图标。我想这只是意味着eclipse将其解析为它的项目层次结构中的文件夹,而不是作为maven jar。