在目标JAR中捆绑本地JAR依赖项

问题描述 投票:0回答:1

我的项目结构是这样的。

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>

现在,我正在为ProjectX创建一个JAR,其中包含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的所有依赖项,但不捆绑来自本地文件系统的依赖项。在这种情况下,最终JAR中缺少来自ProjectY的类。 (还使用jar tf检查)

我错过了什么?

java maven jar
1个回答
1
投票

我找到了快速解决方案。只需在当地maven存储库中安装JAR并正常使用它(没有system scope / systemPath

mvn install:install-file -Dfile=ProjectY.jar -DpomFile=../pom.xml
© www.soinside.com 2019 - 2024. All rights reserved.