标签: nexus

Maven - 将工件安装到Nexus存储库

我当前运行mvn install命令时遇到问题,工件安装在我的本地存储库中(即在%HOME/.m2文件夹中)但不在Nexus存储库中.

我知道Nexus我可以使用GUI手动添加工件但是有没有办法在mvn命令中安装工件?

build-process build nexus maven

2
推荐指数
1
解决办法
5094
查看次数

Maven 3.0.4无法部署,但Maven 3.0.0运行正常

我有一个简单的Maven项目设置,可以部署到本地Nexus服务器.所有相关的配置元素都已就位(<distributionManagement>带有URL的部分,<server>带有用户名和密码的settings.xml文件中的元素等).我知道设置是正确的,因为在Maven 3.0上,我可以部署.在Maven 3.0.4上,我有两个问题.

如果我尝试使用3.0.4开箱即用,我会得到一个handshake_failure.据我所知,这是因为3.0.4 交换后备HTTP客户端.我已将服务器CA的证书包含javax.net.ssl.trustStore在我的MAVEN_OPTS环境变量中指向的信任库中javax.net.ssl.keyStore,在指定的密钥库中包含客户端证书.同样,这适用于3.0.出于某种原因,它不被新的HTTP客户端接收.

因此,我尝试将wagon-http-lightweightJAR放入lib/ext/3.0.4 的目录中,这使我lightweight遇到了第二个问题:一旦我强制使用客户端,我就停止获取handshake_failure并开始获取HTTP 401.再次,用户名和密码在Maven下工作3.0.它显然是在拿起用户名,因为运行时-X包括"

我已经打了好几个小时了,我已经走到了尽头.我欢迎一个解决方案,但我也欢迎任何有关我下一步行动的建议.

nexus maven-3 maven

2
推荐指数
1
解决办法
533
查看次数

使用find和curl将目录内容上传到Sonatype Nexus存储库

我正在尝试使用curl通过bash将目录的内容上传到nexus,并且在我正在使用的命令中遇到一些问题

简而言之,我想在特定目录上执行find命令,并使用-exec {}动作对nexus进行curl

但是我的find命令返回包含源目录的文件路径,我想更改它,所以我只显示内容而不是完整路径

例如,假设我有一个名为trunk的目录,其中包含这些文件和子目录

trunk/directory1/file1
trunk/directory2/file1
trunk/directory2/file2
Run Code Online (Sandbox Code Playgroud)

我希望我的find命令返回

directory1/file1
directory2/file1
directory2/file2
Run Code Online (Sandbox Code Playgroud)

然后这可以传递给我的exec命令

我当前的find命令是: -

find trunk -type f -exec curl --user user:pass --ftp-create-dirs -T {} https://PATH_TO_NEXUS/{} \;
Run Code Online (Sandbox Code Playgroud)

除了在nexus中创建的文件外,这个工作正常

https://PATH_TO_NEXUS/trunk/directory1/file1
Run Code Online (Sandbox Code Playgroud)

而我想要的是

https://PATH_TO_NEXUS/directory1/file1
Run Code Online (Sandbox Code Playgroud)

有人有任何想法吗?

bash curl nexus

2
推荐指数
1
解决办法
5131
查看次数

使用java将工件部署到Nexus

如何使用java将工件部署到Nexus存储库.有没有这方面的API.
我在本地机器上配置了nexus.我需要使用java在其中部署工件.是否有任何文档或链接.

java artifacts nexus maven

2
推荐指数
1
解决办法
1784
查看次数

Gradle/Ivy如何阅读作为Maven镜像的Nexus回购?

Ivy如何阅读作为Maven镜像的Nexus回购?

我正在考虑使用Gradle作为我的构建系统,而Gradle是使用Ant + Ivy(使用Groovy)构建的.我的本地网络上有一个Nexus存储库,可以充当"镜像".为了让我构建我的项目,我在.m2\settings.xml配置文件中添加了一个"镜像"条目.我能够很好地构建我的Maven项目,但是Gradle没有读取.m2配置,所以我的Gradle项目不会构建.

我不知道如何配置Gradle将nexus repo用作镜像.任何人都可以解释这个或给我一些提示吗?我怀疑它与使用ivysettings.xml文件有什么关系? 这篇文章暗示Gradle DOES实际上是在阅读Maven配置,但我没有遇到过这种情况.

nexus ivy gradle

2
推荐指数
1
解决办法
5094
查看次数

Nexus和SVN之间的区别是什么?

SVN和Nexus在开发和集成期间被广泛用作源代码的存储库.也就是说,当我们可以通过SVN设置我们的存储库时,为什么我们真的需要使用Nexus?即使是SVN也有适当的版本控制架构,并广受好评.

通过谷歌浏览,但似乎没有提供明显的差异.请澄清我.

svn nexus

2
推荐指数
2
解决办法
6763
查看次数

来自Gradle和Jenkins的Nexus用户(Android)

我开始使用Jenkins,SCM,Nexus和Android-Gradle进行持续改进.我在Gradle中有一个任务是将AAR文件上传到我的Nexus存储库,如果我从我的计算机执行它,它就可以找到它.任务是' install ',gradle-code如下:

// upload to our nexus repository
uploadArchives {
    repositories {
        // the maven plugin features this deployer
        mavenDeployer {
            // we deploy to the release repository in this case
            repository(url: "https://nexus1.xxxxx.com/nexus/content/repositories/releases") {
                authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
            }

            // pom project information
            pom.project {
                version android.defaultConfig.versionName
                artifactId 't21-android-commons-utils'
                name 'T21 Android Commons Utils Lib'
                packaging 'aar'
            }
        }
    }
}
task install(dependsOn: uploadArchives)
Run Code Online (Sandbox Code Playgroud)

身份验证函数调用getRepositoryUsername()getRepositoryPassword()以从gradle.properties读取凭据.但我不想在我们的SCM中公开这个文件,它应该不安全.

当我将代码推送到我们的SCM时,Jenkins注意到它并执行一项工作来完成一些gradle-task,包括' install '.它工作正常但" 安装 "无法向Nexus服务器进行身份验证,因为找不到gradle.properties(正如预期的那样).

所以,我想知道我应该怎么做"认证 …

version-control android nexus gradle jenkins

2
推荐指数
1
解决办法
1330
查看次数

docker push to nexus 3 - 校验和摘要格式无效

虽然我能够成功地将新拉出的docker镜像推送到Nexus 3 docker托管的repo,但最后会抛出类似"无效校验和摘要格式"的错误.我从dockerhub中取出"jenkins:latest",然后对其进行标记,然后将其推送到nexus docker托管仓库.

f3e4e0468545: Pushed
656120ad8c56: Pushed
30f9a83f20f3: Pushed
78dbfa5b7cbc: Pushed
invalid checksum digest format
Run Code Online (Sandbox Code Playgroud)

我知道Nexus 3还不是LTS,但是要确保它不是我的环境设置.我在18443有一个不安全的码头登记处

docker info Containers: 1 Running: 0 Paused: 0 Stopped: 1 Images: 53 Server Version: 1.10.1 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 89 Dirperm1 Supported: true Execution Driver: native-0.2 Logging Driver: json-file Plugins: Volume: local Network: bridge null host Kernel Version: 3.16.0-53-generic Operating System: Ubuntu 14.04.3 LTS OSType: linux Architecture: x86_64 CPUs: 2 Total Memory: 3.86 GiB …

linux ubuntu nexus nexus3

2
推荐指数
1
解决办法
931
查看次数

Nexus 3 - 文件上传到托管的Maven存储库

我想在Nexus OSS 3实例上将一些文件上传到新生成的托管Maven存储库.

我需要使用curl(不是maven或其他东西)进行上传.

我尝试了以下语句(端口不是必需的 - 我有一个NginX作为反向代理)

curl -v -F r=releases -F hasPom=false -F e=jar -F g=com.my.group -F a=myArtifact -F v=1.0.0-RC1 -F p=jar --upload-file "myArtifact.jar" -u user:password123 http://myNexusInstance.com/repository/myRepository
Run Code Online (Sandbox Code Playgroud)

此命令生成以下错误:

* Server auth using Basic with user 'user'
PUT /repository/myRepository HTTP/1.1
Host: myNexusInstance.com
Authorization: Basic xxxx=
User-Agent: curl/7.49.1
Accept: */*
Transfer-Encoding: chunked
Expect: 100-continue
HTTP/1.1 100 Continue
} [16380 bytes data]
HTTP/1.1 400 Invalid path for a Maven 2 repository
Run Code Online (Sandbox Code Playgroud)

我尝试使用谷歌搜索但没有找到任何解决方案(在Nexus OSS 3.x文档和其他论坛中都没有)

Nexus存储库使用以下配置值进行设置:

  • 格式:maven2
  • 类型:托管
  • 版本政策:发布 …

curl nexus sonatype

2
推荐指数
1
解决办法
9129
查看次数

Nexus Docker并通过内容选择器限制访问

错误报告或请求帮助:我正在尝试在我的组织中实施私有docker注册表,并且需要在我的注册表中进行多租户.A组可以访问其容器,但不能访问B组.

文档暗示我可以通过内容选择器执行此操作可以用于授予对查询结果的访问权限,有点像视图.我已经取得了一些成功,但已经遇到了类似bug的问题.

  • 我创建了一个注册表:5000.
  • 匿名访问已关闭.
  • 我创建了一个测试用户.
  • 我创建了一个内容选择器,它应该限制对名称中带有"spark"的容器的访问. path =~ ".*spark.*"

查询的预览输出预期结果.现在我试试docker login.我得到了一个403 Forbidden.

如果我授予测试用户nx-repository-view-docker-*-read角色,测试用户可以docker login访问注册表并查看所有容器.(可能是故意的)内容选择器不限制访问.

但是,如果我nx-repository-view-docker-*-read在成功后删除角色docker login并保留内容选择器角色,则内容视图将按预期工作.

这不是一个可行的解决方案,但在可能缺少/窃听的方面非常有趣.

有任何想法吗?我只是做错了吗?我发现一篇帖子表明官方的答案是在不同的端口上创建多个注册表并以这种方式允许它们.可行但不理想.

另请参阅: 通过脚本创建内容选择器和权限,以将docker注册表分离为项目拥有的命名空间

nexus

2
推荐指数
1
解决办法
1116
查看次数