如果问题标题不能说清楚,请带我在这里更详细地解释。假设我的一个 Maven 应用程序的生产 jar 需要用于我的另一个 Maven Web 应用程序。将该 jar 添加到我的第二个应用程序 Maven 依赖项中不会添加其传递依赖项。此外,jar 本身就是一个应用程序。
一种方法是查看第一个应用程序的 POM 并将它们添加到另一个应用程序的 POM 中。但是,当添加到某个项目时,中央 Maven jar 如何添加自己的传递依赖项。
换句话说,如果我将commons-io.jar
Maven 依赖项添加到我的项目中,它会自动添加其传递依赖项。但是当我添加myjar.jar
为 Maven 依赖项(范围-> 系统)时,它不会自动添加其传递依赖项。
我认为我应该将我的第一个应用程序开发为可以在这种情况下使用的其他原型。请告诉我如何进一步进行。
对不起这个新手问题。实际上,我是 Maven 新手,我已经开始使用 Netbeans-embedded-maven 来创建应用程序。我真的很喜欢 Maven 简化工作的方式。
edited
看来我应该更详细地解释一下。所以这就是它。
假设我编写了一个使用 A.jar、B.jar、C.jar 的程序/应用程序,而我的生产输出是 X.jar(根据 maven 默认构建,它显然不包含其他 jar)。上面的 A、B、C jar 存在于 maven 中央存储库中,并作为依赖项添加到我的项目中。项目构建 jar 是 X.jar
现在我编写了另一个应用程序,在其中添加了 X.jar 作为系统依赖项,现在我想要的是 A.jar、B.jar、C.jar 自动添加到项目中,因为它们是 X.jar 的传递依赖项
希望这次我已经解释清楚了。如果您之前没有理解,请原谅我的写作风格。
一种解决方案是使用类似这样的东西构建包含所有依赖项的 X.jar
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.nitinsurana.mlmmaven.Start</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-my-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
但我正在寻找能够自动添加系统依赖项的传递依赖项的东西。