是否可以在Maven中为SNAPSHOT和RELEASE工件配置不同的本地存储库?
我问的原因是,我们正在使用Jenkins为我们的项目进行持续构建。为了确保一致性(如果由于竞争条件而在不同的Jenkins作业中构建相同的工件,我们可以在构建开始之前体验混乱行为),我们为Jenkins创建了一个新的本地存储库。
现在的问题是,我们的项目非常庞大,因此对于每个版本我们都必须从Nexus下载大量依赖项,但是当您考虑它时,没有理由每次都有新的RELEASE工件下载。 RELEASE工件不会从构建更改为构建,例如,Spring 4.5,httpclient 4.0,aspectj 1.8.1对于一个构建到另一个构建是相同的。
所以实际上为了确保一致性,我们不应该在存储库中拥有SNAPSHOT依赖项。如果我们有两个本地存储库,一个用于RELEASE工件,另一个用于SNAPSHOT,那么在每个构建开始之前,我们可以删除SNAPSHOT存储库但重新使用本地RELEASE存储库,这将节省我的千兆字节下载关系。
我知道我们可以为远程存储库执行RELEASE,SNAPSHOT配置,是否可以为本地存储库执行相同类型的配置?
如果无法做到这一点,您将如何解决此问题。
答案 0 :(得分:0)
你的Jenkins将有一个本地maven安装,而后者又有一个本地存储库,对于SNAPSHOT和RELEASE来说应该是相同的。
从Nexus下载依赖项后,它将被存储在本地而不会再次下载,这将是高效的。
因此,您第一次构建项目时,只能从Nexus下载大量文件。
答案 1 :(得分:0)
目前尚无办法实现这一目标,是的,我同意这一观点。
Jenkins的Maven插件的最新版本允许您指定自定义本地存储库,而无需编辑UIViewController
文件-该选项就在作业定义屏幕上(在final docRef = Firestore.instance.collection('details').doc()
Firestore.instance.runTransaction((Transaction tx) async {
DocumentSnapshot docSnapshot = await tx.get(docRef);
if (docSnapshot.exists) {
await transaction.update(docRef, {
'othernames': FieldValue.arrayUnion(
[
{
"name": name,
},
],
)
});
}
});
中)部分,选择settings.xml
。
因此,我将使用此选项,并在Maven构建步骤之前添加一个脚本,该脚本删除本地私有存储库中所有以Advanced
结尾的目录。
这令人反感,但我想不出其他任何方式。