为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

阿波罗的战车 2023-01-05 17:06:33

我用 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.sycdn.imooc.com/63b6932b0001ce0d03040458.jpg

查看完整描述

3 回答

?
萧十郎

TA贡献1562条经验 获得超11个赞

最后,图书馆就像是……“损坏”……或类似的东西……这是一个 Java 项目(使用 eclipse 向导创建),然后我转换为 maven(使用 eclipse 向导)。


我从一开始就开始了一个新项目作为 maven 项目,第一次尝试一切正常......


所以我只需要运行mvn clean install生成 jar 并安装在 .m2 仓库中


然后在主应用程序 pom.xml 中,我必须声明为任何其他依赖项:


<dependency>

        <groupId>com.mycompany</groupId>

        <artifactId>mylibrary</artifactId>

        <version>0.0.1</version>

    </dependency>


查看完整回答
反对 回复 2023-01-05
?
www说

TA贡献1535条经验 获得超8个赞

mvn clean package为父项目创建 jar,但它不包括子 jar。

你应该使用 SpringBoot

  • mvn bootRun在本地运行您的项目

  • mvn bootJar构建包含所有必需依赖项的 fat jar。

    运行这个 fat jar 调用java -jar parent.jar


查看完整回答
反对 回复 2023-01-05
?
杨魅力

TA贡献1600条经验 获得超5个赞

根据评论,您想使用 maven 创建一个项目,该项目将创建一个 jar 文件。该 jar 文件将在另一个项目中使用。如果我的理解是正确的。您必须执行以下操作。

  1. 使用简单类型原型创建一个简单的 Maven 项目。

  2. mvn clean install使用或之类的命令运行 pom.xml mvn clean package

  3. 使用简单项目中的 jar 文件上传到您的 nexus/artifactory 存储库,并在另一个 maven 项目中使用 maven 定义。

如果你没有nexus或artifactory,你可以在另一个maven项目中本地使用jar文件。

要在另一个项目中本地添加 jar 文件,您必须在 pom.xml 中添加以下依赖结构。

<dependency>

    <groupId>your group id</groupId>

    <artifactId>name of the application</artifactId>

    <version>some version</version>

    <scope>system</scope>

    <systemPath>your location/jar-file-name.jar</systemPath>

</dependency>

希望它能回答你的问题。


查看完整回答
反对 回复 2023-01-05

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信