我有一个Java项目a-1.0.jar
,其依赖项为ojdbc.jar
,而b.jar
依赖于a-1.0.jar
和ojdbc.jar
。我正在尝试使其在我的计算机,新用户计算机和Bamboo服务器上运行。
期望的行为:
项目应在本地计算机git clone <git_url>
,mvn clean install
,java -jar b.jar
上运行。 Bamboo应该检出并运行项目。
在Bamboo上:计划可以签出项目并运行它。构建应跟踪已构建的b.jar
和使用的a.jar
的版本。
到目前为止,我看到了以下选项:
<systemPath>${project.basedir}/lib/a-1.0.jar</systemPath>
:maven警告说它将无法解决依赖关系
一个Perl脚本,可在构建项目之前为每个相关的jar运行mvn install
(1)破坏了DevOps自动化的目的
(2)无法确定使用了哪个版本的罐子
(3)安装jar,但java -jar b.jar
失败a.jar
丢失
我可以用另一个Perl脚本克服这个问题,该脚本将依赖的jar添加到类路径中
这些是基本任务,作为构建工具,Maven应该能够做到。
如何告诉Maven以下三个目标?
(1)对于每个未知的导入-从lib文件夹中获取一个jar
(2)制作一组依赖的jar。那就是不要两次导入ojdbc
(3)装一个可以运行的自足罐子,不会因“东西丢失”而失败
答案 0 :(得分:1)
似乎您需要创建一个可执行jar-为此,您可以使用各种方法。
其中之一是添加maven-shade-plugin,它将所有依赖项放入单个jar中,同时还要注意潜在的资源冲突。
答案 1 :(得分:0)
尝试使用非maven-jar-maven插件。它会添加不在maven中央的jar。