Объединить локальную зависимость JAR в целевой JAR - PullRequest
0 голосов
/ 10 марта 2019

Моя структура проекта выглядит примерно так:

ProjectX - зависит от ProjectY, который является локальным JAR, добавленным в виде зависимости, подобной этой:

<dependency>
        <groupId>com.wow.projecty</groupId>
        <artifactId>projecty</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>/Users/somepath/ProjectY.jar</systemPath>
</dependency>

Теперь,Я создаю JAR для ProjectX со всеми зависимостями, связанными в JAR, используя это.

<plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>ProjectXDriver</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

Это объединение всех зависимостей из Maven, но не из локальной файловой системы.В этом случае классы из ProjectY отсутствуют в окончательном JAR.(Также проверено с помощью jar tf)

Чего мне не хватает?

1 Ответ

1 голос
/ 20 марта 2019

Быстрое исправление я нашел для этого. Просто установите JAR в локальный репозиторий maven и используйте его как обычно (без system scope / systemPath.

mvn install:install-file -Dfile=ProjectY.jar -DpomFile=../pom.xml
...