Eclipse rcp 如何确保tycho构建不会';不包括快照依赖项

Eclipse rcp 如何确保tycho构建不会';不包括快照依赖项,eclipse-rcp,tycho,Eclipse Rcp,Tycho,在非tycho版本中,Maven检查正在构建的项目中是否存在快照依赖项 有没有一种方法可以对与第谷一起建造的E4项目执行相同的操作?看看: 存储库: 发布、快照:这些是针对每种类型的工件、发布或快照的策略。有了这两个集合,POM就可以在单个存储库中独立地更改每种类型的策略。例如,您可能决定仅启用快照下载,可能是出于开发目的。 已启用:true或false,了解此存储库是否已为相应类型(版本或快照)启用。 updatePolicy:此元素指定应尝试进行更新的频率。Maven将本地POM的时间戳(存

在非tycho版本中,Maven检查正在构建的项目中是否存在快照依赖项

有没有一种方法可以对与第谷一起建造的E4项目执行相同的操作?

看看:

存储库发布、快照:这些是针对每种类型的工件、发布或快照的策略。有了这两个集合,POM就可以在单个存储库中独立地更改每种类型的策略。例如,您可能决定仅启用快照下载,可能是出于开发目的。 已启用:true或false,了解此存储库是否已为相应类型(版本或快照)启用。 updatePolicy:此元素指定应尝试进行更新的频率。Maven将本地POM的时间戳(存储在存储库的Maven元数据文件中)与远程POM进行比较。选择是:始终、每日(默认)、间隔:X(其中X是以分钟为单位的整数)或从不。 checksumPolicy:当Maven将文件部署到存储库时,它也会部署相应的校验和文件。您可以选择忽略、失败或警告丢失或错误的校验和。 布局:在上面对存储库的描述中,提到它们都遵循一个通用的布局。这基本上是正确的。Maven 2的存储库有一个默认布局;然而,Maven 1.x有一个不同的布局。使用此元素可以指定默认元素还是传统元素

我认为你所追求的设置可能大致如下

<repository>
    <id>my-repo</id>
    <name>My Repo</name>
    <url>http://my.repo.org</url>
    <snapshots>
        <enabled>false</enabled>
        <updatePolicy>never</updatePolicy>
    </snapshots>
</repository>

我的回购协议
我的回购协议
http://my.repo.org
假的
从未

p2存储库没有快照和非快照工件的(正式)概念。所以从技术上讲,只要不使用Maven存储库中的快照工件,Tycho构建中就不会有快照依赖项。后者可以通过与Maven中相同的方式防止,即通过控制settings.xml中的Maven存储库(参见示例)

但这可能不是你想要的。您可能希望确保不引用最终将消失并使构建不可复制的工件。为此,您必须检查引用的p2存储库的保留策略,并确保只引用“永久”保留的p2存储库。(例如:)


如果保留策略不够好(或者您不相信提供者会遵守这些策略),则需要存储引用的p2存储库的副本。例如,您可以将p2存储库作为zip下载(或者镜像存储库并自己进行zip),将其部署到,并通过从构建中访问它。(免责声明:解压插件是Tycho项目的产品,我是该项目的提交者。)

Maven如何检查这一点?你能在Tycho构建中执行相同的目标吗?Maven在发布插件中检查这一点,该插件不能在Tycho构建afaik中使用。这在典型的Maven构建中是正确的,其中依赖项添加到pom.xml文件中。对于Tycho构建,依赖项位于MANIFEST.MF文件中,由Eclipse和RCP框架维护。感谢您的回答。!我的项目中的许多模块都包含依赖项,这些依赖项存储在模块文件夹中的“lib”目录中,并在plugin.xml编辑器的“runtime/classpath”部分中引用。我希望防止包含这些依赖项的快照。这些不是Eclipse插件。也许我以错误的方式包含了它们?这听起来像是来自Maven的库,所以您应该研究如何防止Maven在构建中使用快照工件。右边的
settings.xml
配置应该可以为您解决这个问题。它们是用Maven构建的,但不是由Maven导入到我的Eclipse应用程序中。它们是使用eclipse中的plugin.xml编辑器手动添加的。当有人开发这些DEP时,我希望使用快照,但我希望在发布时进行检查,以确保我的Manifests或build.properties中没有引用这些文件。好的,您让开发人员手动将文件从某个地方复制到源中,然后您想检查它们来自何处?对不起,但你注定了…我就是这么想的。非常感谢您的回答!:)