我希望maven将依赖的jar存储在项目特定的 lib 文件夹中,而不是默认的 MyUser / .m2 / repository / 中。并非所有人在获得项目时都能访问互联网,并且复制全局本地存储库似乎是一种不太理想的解决方案。
如何说服maven在本地相对项目特定文件夹中存储和使用这些依赖项?
似乎我的问题是this Stackoverflow question
的重新版本我做了类似的事情:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${mvn-dependency-plugin.version}</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.basedir}/${local-lib-dir}</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<stripVersion>true</stripVersion>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<build>
唯一的缺点是,日食maven仍然引用本地存储库中的jar。
答案 0 :(得分:1)
我很遗憾地说,但如果您真的想要一个包含您正在使用的依赖项的lib文件夹,那么您将回到Ant时代,并开始将lib文件夹检入您的版本控制中坏。
如果您认为互联网访问不存在,您应该开始使用安装在本地网络中的Artifactory,Nexus或Archiva等存储库管理器,并且只有存储库管理器需要Internet连接。其他人只使用版本控制工具来检查来源,并可以开始使用该项目。
答案 1 :(得分:0)
您可以像下面这样管理外部依赖项:
<dependency>
<groupId>mydependencygroup</groupId>
<artifactId>my.artifact</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>${basedir}\src\lib\myartifact.jar</systemPath>
</dependency>
lib文件夹位于src文件夹中。
希望它能解决。