我们有许多Java项目,这些项目是使用Jenkins构建的CI。这些都可以部署到我们自己的Nexus服务器上。问题是,我们需要将这些库提供给第三方,但没有源代码。因此,对于每个项目,在Nexus中,我们都有:
问题是:在Jenkins /
Nexus世界中通常如何处理?我希望在Jenkins中有一个Job,可以“自动”处理CI的构建和发布(人工部署)过程。目前,我<distributionManagement>
在“主根pom.xml”中使用了多个配置文件(所有项目都包含):
[...]
<profiles>
<profile>
<id>default</id>
<distributionManagement>
<repository>
<id>releases</id>
<name>Release</name>
<url>http://path/to/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshot</name>
<url>http://path/to/nexus/content/repositories/snapshots/</url>
<uniqueVersion>false</uniqueVersion>
</snapshotRepository>
</distributionManagement>
</profile>
<profile>
<id>third-party</id>
<distributionManagement>
<repository>
<id>releases</id>
<name>Release</name>
<url>http://path/to/nexus/content/repositories/third-party/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshot</name>
<url>http://path/to/nexus/content/repositories/third-party-snapshots/</url>
<uniqueVersion>false</uniqueVersion>
</snapshotRepository>
</distributionManagement>
</profile>
</profiles>
从Maven文档看来,似乎不可能在同一个构建生命周期中使用多个存储库,更不用说我们需要/不需要基于目标存储库的源这一事实。
我可以在Jenkins中使用Maven“目标和选项”创建Job,clean deploy -P third- party
然后添加带有“默认”数据的Post-build操作-“将工件部署到Maven存储库”,但在这种情况下,快照将用于回购,而通过Jenkins
Maven Release Plug-
in
发布的人工制品仅进入一个存储库。
有什么可行的想法,如何在不使CI工作层次结构复杂化的情况下做到这一点?
提前致谢!
您只需在Nexus中处理所有操作即可。创建一个存储库目标,其中包含与预配置示例“除了源中的所有其他内容(Maven
2)”中使用的模式相似的模式,并使用另一种限制groupid,artifactid甚至版本的模式来进一步缩小目标范围。
然后创建使用该存储库目标的特权,并将其分配给您希望具有相应访问权限的用户或角色。
无需进行多个部署或类似的部署。
参见http://books.sonatype.com/nexus-book/reference/repository-
targets.html
问题内容: 我们有许多Java项目,这些项目是使用Jenkins构建的CI。这些都可以部署到我们自己的Nexus服务器上。问题是,我们需要将这些库提供给第三方,但没有源代码。因此,对于每个项目,在Nexus中,我们都有: __为我们的开发人员 发布 存储库(包括已部署的源代码) __我们开发人员的 快照 存储库(包括已部署的源代码) 第三方发布 存储库(仅JAR + POM) (并且很高兴拥有):
需要根据特定环境从两个远程存储库部署工件。所以我尝试在pom.xml的分发管理中使用配置文件 尝试激活个人资料 我得到以下错误。 部署失败:存储库元素没有指定在POM内部分布管理元素或在-DaltDeploymentRepository=id::布局::url参数 似乎pom无法识别分发管理标签。 但它在没有单一分销管理的配置文件的情况下运行良好。 有谁能给点建议吗? 参考 设置Maven以允许轻
我目前在一个我为很多人定义规则的环境中工作。我们目前使用Hudson和artiFactory,我想评估切换到Jenkins和Nexus是否值得迁移成本(但这不是问题)。 为了评估它,我在本地设置了Maven、Jenkins和Nexus,我试图找到一个设置来使用以前的设置,以便我可以比较解决方案。这里的问题是: > 注意:安装和用户配置不能用于添加共享项目信息,例如,设置或公司范围。 我们当前的根P
我见过使用Maven构建和部署本机代码--但无法使这种(非常相似的)部署工作如我所愿… 我有一个用Maven和Maven CMake插件构建的C++项目。这涉及到几个Maven概要文件,为我在构建平台上使用的各种C++编译器选择正确的设置。(Windows 10、Ubuntu 16.04、Ubuntu 18.04、CentOS 7、Raspbian、macOS High Sierra)。我使用Je
我有一个pom构建了一个jar,并使用rpm maven插件将其打包成rpm。jar既用作独立应用程序,也用作其他应用程序的依赖项,因此我需要将这两个构件部署到本地Nexus。我希望将jar部署到标准的maven releases/maven snapshots存储库中,但我希望将rpm部署到同一个Nexus中的另一个存储库中,该存储库仅用于我们的rpm。 我的专业知识相当基础,但我不知道如何做到
我在POM. xml中引用了一个存储库来将ojdbc.jar添加到我的项目中,但是Maven(我使用STS插件)一直告诉我它找不到jar。 我在下面显示了我的存储库和jar依赖关系xml. 有人知道为什么找不到这个罐子吗?这是我的POM。xml设置不正确? 注意vaadin回购工作正常,因为vaadin罐被正确地添加到我的项目中。 下面是http://mvnrepository.com/artif