Установка mvn или сбой пакета из-за невозможности найти символы из другого пакета в рабочей области - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть проект весенней загрузки Proj-Main и другой проект, который содержит классы сущностей, называемые Proj-Entities.Оба они присутствуют локально.Я добавил последнее как зависимость первого.Он отлично работает в моей IDE (в моем случае STS), однако, когда я пытаюсь создать jar для развертывания на сервере, используя mvn package или даже mvn install для Proj-Main, он не может найти классы, которые присутствуют внутри Proj-Entities,Я проверил мой каталог .m2 и смог найти там банку для Proj-Entities.Я пробовал стандартные методы очистки и перестройки, но, похоже, это не сработало.

Вот как я добавляю зависимость:

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

Моя задача сборки выглядит следующим образом:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

Ответы [ 2 ]

0 голосов
/ 21 апреля 2019

Решил это, добавив следующие цели сборки в 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>
0 голосов
/ 16 апреля 2019

Добавление раздела модулей в Route Proj-Main. В разделе модуля добавить

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

Затем выполните «mvn clean install» в вашем Proj-Main. Вы получите файл войны и файл 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

...