我的项目有两个单独的模块,使用sqlline和另一个依赖于jline的库(称为OtherLib)。但是它们使用不同的版本。
外部库
Module1使用Sqlline并依赖于jline 2.10
Module2使用OtherLib并依赖于jline 0.9.94
这两个版本不兼容。 因此,我已经设置了类路径,使得Module1首先搜索$HOME/lib/module1文件夹,而Module2首先搜索$HOME/lib文件夹。
是否有一种方法可以指定maven首先将构件下载到源目录(比如../resources/lib),然后在打包时将其复制到包中(在assembly.xml
中)?
我知道可以使用以下代码从源目录复制:
<fileSets>
<fileSet>
<directory>../resources/lib</directory>
<outputDirectory>${HOME}/lib/module1</outputDirectory>
<directoryMode>755</directoryMode>
<fileMode>644</fileMode>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
还有一种方法可以让Maven下载依赖项(对于Module2):
<dependencySets>
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>${HOME}/lib</outputDirectory>
<directoryMode>755</directoryMode>
<fileMode>644</fileMode>
<includes>
<include>jline:jline:jar:0.9.94</include>
</includes>
</dependencySet>
<dependencySets>
如何确保 jline:jline:jar:2.10
首先下载到 ../resources/lib 文件夹中?
../resources/lib
时,它可以正常工作,但对于这个项目来说,手动操作是不可接受的。 - Sach