Можем ли мы добавить исполняемый файл JAR в качестве зависимости в другом проекте? - PullRequest
0 голосов
/ 01 мая 2020

Я создал проект начальной загрузки (Проект A) и запустил сборку как maven install. Это создало исполняемый файл JAR в папке .m2.

Я хочу использовать вышеуказанный проект в качестве зависимости в двух других проектах весенней загрузки (Project B и Project C). Я добавил зависимость проекта A в pom. xml проекта B. Но эта зависимость включена как папка в Maven Dependencies. Я могу импортировать только необходимые классы из проекта A, если проект A открыт в локальном обозревателе проектов. Если я закрываю проект A, зависимости не разрешаются, и выдается ошибка.

Я что-то не так делаю при создании первого проекта (A). Ниже приведен тег сборки в pom. xml для проекта A. Можем ли мы добавить исполняемый файл в качестве зависимости?

<build>
    <resources>
        <resource>
            <filtering>true</filtering>
            <directory>src/main/resources</directory>
            <includes>
                <include>**</include>
            </includes>
        </resource>
    </resources>
    <finalName>${project.artifactId}-${project.version}${build.number}</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <skipTests>true</skipTests>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

Пожалуйста, помогите мне понять, если здесь что-то не так. Заранее спасибо:)

1 Ответ

0 голосов
/ 01 мая 2020

По умолчанию каждое приложение Spring Boot наследуется от артефакта Spring Boot, поэтому автоматически загружает множество зависимых библиотек с помощью функции зависимостей maven maven. Также по той же причине - не все необходимые библиотеки будут автоматически разрешены как зависимости, когда приложение Spring Boot превращается в разделяемую библиотеку.

Чтобы решить эту проблему, необходимо извлечь разделяемые классы в выделенную разделяемую библиотеку и использовать эту библиотеку как зависимость между проектами. Простого пути нет, извините.

...