问题标签 [nexus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven-2 - 限制本地 Nexus 存储库访问 Central
我们计划向开发人员发布我们的公司关系存储库。手头的问题是,我们希望对可以从存储库下载的 jar 版本强制执行标准。例如,如果我们已经在 nexus 中提供了 Spring 框架版本 3 作为组织标准,那么除非得到技术架构师的批准,否则开发人员不能使用 nexus 下载最新版本的 spring eg 3.3。
可以说没有办法做到这一点,因为开发人员可以直接指向中心并下载 jar。但是这种情况将在每日 hudson CI 构建中处理,该构建仅使用来自 nexus 的 jar。
我们最初的建议是使用同意的库版本设置 nexus,然后更改 nexus 代理设置,使其无法到达中心。还有比这更好的主意吗?
maven-2 - 通过 Maven 将整个目录上传/下载到 Nexus
是否可以将整个目录及其中的所有子目录上传/下载到/从 Nexus 存储库服务器?
maven-2 - Maven 在下载快照工件时在工件名称中添加“-windows”
我在本地 Nexus Maven 存储库中添加了一堆工件。
当我构建我的项目时,我收到以下错误:
[INFO] 正在扫描项目...
[INFO] -------------------------------------------------- ----------------------------------
[INFO] 构建 pronto-web Java EE 6 Webapp
[INFO] 任务-段:[验证]
[INFO] ------------------------------------------ ------------------------------
[INFO] [resources:resources {execution: default-resources}]
[WARNING] 使用平台编码(实际上是 Cp1252)复制过滤的资源,即构建依赖于平台!
[INFO] 复制 4 个资源
[INFO] [compiler:compile {execution: default-compile}]
[WARNING] 文件编码尚未设置,使用平台编码 Cp1252,即构建依赖于平台!
[INFO] 将 1 个源文件编译到 C:\Source\Pronto\pronto\pronto-web\target\classes
[INFO] [antrun:run {execution: remove-javax}]
[INFO] 执行任务
[INFO] 执行任务
[ INFO] [gwt:compile {execution: default}]
[INFO] 使用来自项目依赖项的 GWT jar:20100714-SNAPSHOT
[警告] 您不应将 gwt-dev 声明为项目依赖项。这可能会引入复杂的依赖冲突
下载:http://mercury:8980/nexus/content/groups/public-snapshots/com/google/gwt/gwt-dev/20100714-SNAPSHOT/gwt-dev-20100714-20100715.053026-1- windows.jar
[信息] -------------------------------------------- ----------------------------
[错误] 构建错误
[信息] --------------------------------------------- -------------------------
[INFO] 工件未找到 - 无法在存储库中找到资源尝试从项目网站手动下载文件。
然后,使用以下命令安装它:
mvn install:install-file -DgroupId=com.google.gwt -DartifactId=gwt-dev -Dversion=20100714-20100715.053026-1 -Dclassifier=windows -Dpackaging=jar -Dfile=/path/到/文件或者,如果您托管自己的存储库,您可以在那里部署文件:
mvn deploy:deploy-file -DgroupId=com.google.gwt -DartifactId=gwt-dev >-Dversion=20100714-20100715.053026-1 -Dclassifier=windows -Dpackaging =jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]com.google.gwt:gwt-dev:jar:20100714-20100715.053026-1
从指定的远程存储库:
发布(http://mercury:8980/nexus/content/groups/public)、
全部(http://mercury:8980/nexus/content/groups/all)、
快照(http://水星:8980/nexus/content/groups/public-snapshots)http://mercury:8980/nexus/content/groups/public-snapshots/com/google/gwt/gwt-dev/20100714-SNAPSHOT/gwt-dev-20100714-20100715.053026-1-windows.jar
[信息] -- -------------------------------------------------- --------------------
[INFO] 有关更多信息,请使用 -e 开关运行 Maven
[INFO] ------------- -------------------------------------------------- ---------
[INFO] 总时间:8 秒
[INFO] 完成时间:Thu Jul 15 08:57:29 CEST 2010
[INFO] Final Memory: 50M/614M
[INFO] ----- -------------------------------------------------- -----------------
有谁知道为什么 maven 认为应该在工件名称中添加“-windows”?(下载:http://mercury:8980/nexus/content/groups/public-snapshots/com/google/gwt/gwt-dev/20100714-SNAPSHOT/gwt-dev-20100714-20100715.053026-1-windows.jar)
如果我浏览存储库,它包含工件但没有“-windows”后缀。
这个工件的旧版本是平台相关的,并且有“windows”或“linux”或“mac”作为分类器,但最近的版本是平台独立的,我的 poms 中没有任何这样的分类器。
PS:我在协议和冒号之间的每个 URL 中添加了一个空格,因为我还没有获得足够的声誉来发布链接。
maven-2 - Maven - 如何/在哪里发布工件
我已经开源了我的一些项目。我想在一个共同的地方发布工件。如果我不必托管自己的存储库,那将是理想的,否则我将不得不设置自己的 Nexus 实例(或您推荐的其他存储库)。
我可以将工件发布到 Maven Central 吗?我需要遵循什么流程才能让他们到达那里?
java - 如何指定maven的distributionManagement组织范围?
我试图弄清楚如何组织许多(大约 50 多个)maven2 项目,以便它们可以部署到一个中央关系存储库中。使用mvn deploy
目标时,确实需要在 distributionManagement 标记中指定目标,如下所示:
现在,我不希望每个 pom.xml(超过 50 个)都一遍又一遍地包含这个块。我的第一个虽然是settings.xml
文件,但似乎不可能(按设计)在那里定义它。所以,第一个问题是,为什么会这样?如果可能的话,我可以在 maven2 发行版的 settings.xml 中指定它,它可以分发给所有开发人员。
我发现的唯一可能的解决方案是创建一个组织范围的 master-pom 项目,它确实包含这些设置,并使所有其他 pom.xml 依赖于这个 master-pom via<parent>
标签。但这在多模块构建中看起来有点奇怪:
通常我在所有文档中都读到模块 pom 应该使用父 pom,而不是其他的。但是在阅读了有关继承与聚合的 maven 网站后,它写道确实是可能的。
我发现的一个问题是 maven 站点生成,它似乎确实存在此设置的问题(如果模块没有直接反向引用,则无法正确链接)
那么,这是一种有效的方法吗?任何其他更明显,更简单的问题解决方案?
maven-2 - Nexus 中的发布存储库策略是否确保 jar 永远不会更改?
我正在将 Nexus OSS 部署为公司内部存储库。主要要求之一是,一旦 Nexus 下载了一个 jar(例如,当使用 is 作为 Maven Central 的代理时),它就永远不会改变。我知道 Maven Central 有该政策,但我正在使用不受我控制的其他存储库,我必须在我这边验证该要求。
发布存储库策略是否确保一旦将 jar 下载到该存储库中,它就永远不会更改?
存在这样的要求是为了确保我们可以回到 1.5 年前创建的产品版本,并确保产品使用的存储库工件在现在构建时是相同的。
maven-2 - Sonatype Nexus 可以在提交后发布索引吗?
我们有一个 Nexus 存储库,其中包含我们的软件(惊喜......)。在我们的 IDE 中,我们添加了存储库,因此我们可以以可视方式浏览它们。
问题:IDE 使用当前每晚更新的 .index 文件夹(及其 gz 文件)。
我想要的是:如果有人添加了工件, .index 应该会自动更新。那可能吗?
我不想要的是:让索引每隔几分钟更新一次。
deployment - 使用 Leiningen 推送到 Nexus
我使用 Leiningen 编写了一个 Clojure 项目,现在想将生成的 jar 添加到 Sonatype Nexus 服务器。我安装了 lein-clojars,因为它带有一个命令,如果你想推送 Clojars 之外的某个地方push
,它似乎可以接受一个可选参数。repo
但是,每当我尝试这个时,我都会得到一个JSchException: Auth fail
. 这似乎表明某处存在身份验证问题。
我能够将 jar scp 到 Nexus,并且我还能够使用与 Maven 相同的 settings.xml 上传到这台机器,所以我相当有信心这些都是正确的。
有没有什么好的方法可以使用 Leiningen 推送到其他存储库?还是真的只为 Clojars 构建?
maven-2 - Nexus + Maven + Hudson 的发布问题
在 Hudson(1.368) 上使用 Maven 的发布插件时,我收到一个错误,即我的 distributionManagement 部分在我们的 Nexus Maven 存储库管理器的部署阶段丢失。如果我在不使用发布的情况下部署它就可以了,所以不应该是服务器、部分或设置的错误配置。
值得注意的是,我的公司对 Hudson 使用了不同的 pom 文件,并且对它们进行了不同的命名。还有各个项目目录中的 settings.xml。这从来都不是问题,因为 Hudson 允许指定 pom 的名称以及设置文件的位置和名称。
我注意到上述内容的原因是,当将 distributionManagement 移到常规 pom.xml 中时,它确实找到了它(但仍然无法正常工作,因为它在设置文件中缺少用户名和密码)。这让我很困惑,因为对于发布过程的前面部分,它使用了正确的 pom 和设置。只是后来似乎忘记了他们。这里发生了什么?
先感谢您。
更新
maven 发布插件似乎启动了一个新的 maven 实例,它似乎使用默认的 pom.xml 而不是我们不同命名的 pom。需要更多的测试。