【问题标题】:using one maven project into another maven project将一个 Maven 项目用于另一个 Maven 项目
【发布时间】:2020-12-14 00:48:03
【问题描述】:

我有两个 maven 项目,

  1. testmvn
  2. mvnusedemo

testmvn:

    <groupId>com.avs</groupId>
    <artifactId>testmvn</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>testmvn</name>

mvnusedemo:

    <groupId>com.avs</groupId>
    <artifactId>mvnusedemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mvnusedemo</name>

现在我在项目中有一个类testmvn

package com.avs.Calculation;

public class AddNumbersME {
    public int addNumbers(int a, int b) {
        return a + b;
    }

    public int addNumbers(int a, int b, int c) {
        return a + b + c;
    }

}

我已经运行 mvn install cmd, 我得到了构建成功。 在本地 repo(.m2) 中我可以看到那些罐子

现在我正在尝试在项目 mvnusedemo

中使用这个类(AddNumbersME)
  1. mvnusedemo 的 pom.xml 中添加了依赖项
<dependency>
    <groupId>com.avs</groupId>
    <artifactId>testmvn</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

现在我可以在eclipse中看到添加到maven依赖文件夹的依赖了。

  1. 现在尝试使用 **AddNumbersME **
    public static void main(String[] args) {
        SpringApplication.run(MvnusedemoApplication.class, args);
        AddNumbersME a = new AddNumbersME(); // getting error - could not resolve 
    }

错误: AddNumbersME 无法解析为 typeJava

需要帮助,我有什么遗漏吗??

【问题讨论】:

  • 可以在main()所在的类中导入AddNumbersME吗?
  • 是的,我尝试添加 import com.avs.Calculation.AddNumbersME; 得到错误 无法解析导入 com.avs.Calculation

标签: java maven maven-dependency


【解决方案1】:

我的一个朋友帮助了我, 需要在 pom.xml 中的 build -> plugin 中提供执行 看起来像

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <classifier>exec</classifier>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

现在一切正常。

【讨论】:

    【解决方案2】:

    您在两个项目中具有相同的组 ID。所以只使用 import Calculation.AddNumbersME 不要添加 com.avs!另一个建议:不要使用大写的包名,例如 Calculation。使用小写计算作为包名!

    【讨论】:

    • 还是一样,出现错误。 无法解析导入计算,即使是IDE也无法识别并进行自动导入。
    • 确保重新加载 mvnusedemo 项目。您使用哪个 IDE?也为 mvnusedemo 项目进行 mvn clean install!
    • @VijayashankarAruchamy 我创建了两个具有相同组 id 的 mvn 项目(但不是 Spring boot 应用程序,只是一个简单的空 maven 项目),并且我使用完全相同的包、类、方法等命名。从您的问题中复制/粘贴。有用!但正如我所说的 import 和 maven reload 是必要的!
    猜你喜欢
    • 2020-10-10
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 2019-06-19
    • 1970-01-01
    相关资源
    最近更新 更多