mvn安装或软件包失败,因为无法从工作空间中的另一个软件包中找到符号

时间:2019-04-16 04:57:28

标签: java maven spring-boot maven-2 maven-3

我有一个Spring Boot项目Proj-Main和另一个项目,其中包含名为Proj-Entities的实体类。这两个都是本地存在的。我将后者添加为第一个的依赖项。它在我的IDE(在我的情况下为STS)中完美运行,但是当我尝试创建mvn package甚至mvn install的{​​{1}}部署到服务器的jar时,它找不到要位于Proj-Main内部。我已经检查了Proj-Entities目录,并且可以在其中找到.m2的jar。我尝试了标准的清理和重建技​​术,但似乎不起作用。

这就是我添加依赖项的方式:

Proj-Entities

我的构建任务如下:

    <dependency>
        <groupId>com.proj</groupId>
        <artifactId>Proj-Entities</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>

2 个答案:

答案 0 :(得分:0)

在rout proj-main中添加模块部分。在模块部分添加

<module>../Proj-Entities</module>

然后在Proj-Main中进行“ mvn全新安装”。您将在目标文件夹中获得war文件和jar文件。

或者您可以尝试

<dependency>
     <groupId>com.proj</groupId>
     <artifactId>Proj-Entities</artifactId>
     <version>0.0.1-SNAPSHOT</version>
     <scope>system</scope>
     <systemPath>${basedir}/lib/Proj-Entities-1.0.0.jar</systemPath>
</dependency>

您可以根据您的项目指定jar文件名。

"systemPath" here, it requires the absolute path of the project.You can make it easier by keeping the file inside the project itself such that "basedir" will work

答案 1 :(得分:0)

通过将以下构建目标添加到Proj-Entities pom中来解决此问题。

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