在另一个maven项目中用maven实现项目

我用 maven 创建了一个 Java 项目,我想在其他 maven 项目中实现它。


子项目不是spring项目,是从头创建的Java项目迁移到maven管理依赖。


我可以用 生成 jar mvn install。到目前为止,一切都很好。


然后我尝试将这个 jar 实现到其他用 maven 和 spring 构建的项目。


为此,我使用以下命令将该 jar 添加到我的本地 maven 仓库中:


mvn install:install-file -Dfile=/Users/.../target/app-0.0.1-SNAPSHOT.jar -DgroupId=com.mycompany.childapp -DartifactId=childapp -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar

然后我可以在.m2 的repo 文件夹中看到jar 文件是正确的。


这在父项目 pom.xml 中:


<dependency>

      <groupId>com.mycompany.childapp</groupId>

      <artifactId>childapp</artifactId>

      <version>0.0.1-SNAPSHOT</version>

 </dependency>

而且,在插件部分:


<plugin>

   <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

至少对于 Eclipse,一切都很好,因为我可以毫无问题地开发和实现库中的类。我可以构建父应用程序mvn clean package但是当我运行应用程序并尝试执行使用子库的代码部分时,我会ClassNotFoundException为子项目中的类获取。


在父项目中,在 Maven 导入的库中,我看到我的库有一个文件夹图标,而不是另一个库的图标。

http://img1.mukewang.com/63b6932b0001ce0d03040458.jpg

阿波罗的战车
浏览 110回答 3
3回答

萧十郎

最后,图书馆就像是……“损坏”……或类似的东西……这是一个 Java 项目(使用 eclipse 向导创建),然后我转换为 maven(使用 eclipse 向导)。我从一开始就开始了一个新项目作为 maven 项目,第一次尝试一切正常......所以我只需要运行mvn clean install生成 jar 并安装在 .m2 仓库中然后在主应用程序 pom.xml 中,我必须声明为任何其他依赖项:<dependency>&nbsp; &nbsp; &nbsp; &nbsp; <groupId>com.mycompany</groupId>&nbsp; &nbsp; &nbsp; &nbsp; <artifactId>mylibrary</artifactId>&nbsp; &nbsp; &nbsp; &nbsp; <version>0.0.1</version>&nbsp; &nbsp; </dependency>

www说

mvn clean package为父项目创建 jar,但它不包括子 jar。你应该使用 SpringBootmvn bootRun在本地运行您的项目mvn bootJar构建包含所有必需依赖项的 fat jar。运行这个 fat jar 调用java -jar parent.jar

杨魅力

根据评论,您想使用 maven 创建一个项目,该项目将创建一个 jar 文件。该 jar 文件将在另一个项目中使用。如果我的理解是正确的。您必须执行以下操作。使用简单类型原型创建一个简单的 Maven 项目。mvn clean install使用或之类的命令运行 pom.xml&nbsp;mvn clean package。使用简单项目中的 jar 文件上传到您的 nexus/artifactory 存储库,并在另一个 maven 项目中使用 maven 定义。如果你没有nexus或artifactory,你可以在另一个maven项目中本地使用jar文件。要在另一个项目中本地添加 jar 文件,您必须在 pom.xml 中添加以下依赖结构。<dependency>&nbsp; &nbsp; <groupId>your group id</groupId>&nbsp; &nbsp; <artifactId>name of the application</artifactId>&nbsp; &nbsp; <version>some version</version>&nbsp; &nbsp; <scope>system</scope>&nbsp; &nbsp; <systemPath>your location/jar-file-name.jar</systemPath></dependency>希望它能回答你的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java