标签: nexus

如何在Nexus中限制部署的快照工件数量?

我们正在使用Nexus来部署我们的快照工件.我们的构建服务器使用以下命令在每次构建期间部署它们:mvn deploy.作为每个构建的结果,部署了较新版本的工件.已经将大量工件部署到存储库的问题当然我们只需要最后一个工件.有没有办法限制Nexus中部署的快照工件的数量?谢谢你的帮助,迈克尔

java nexus maven

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

Nexus或Artifactory可以存储简单的tar.gz工件吗?

我的云服务器位于世界各地的不同数据中心.每个数据中心都与其他数据中心分开.

我正在寻找一种简单的方法,可以轻松,一致地在每个区域中将工件部署到各个服务器集群(可能运行不同版本的软件,即开发,测试和生产集群).在我看来,工件服务器是我需要的,因为我可以在云服务器上执行安装脚本,从而下载正确的软件工件.

现在,我在运营方面工作.我不关心做构建或管理软件构建依赖性.我只想要一个工件服务器,我可以存储我的所有不同版本的软件包,以便以后访问.踢球者,我有几种不同类型的工件要存储.

  • Shell脚本
  • Python脚本
  • 木偶表现出来
  • Debian文件(通常作为多个debians的tar.gz文件提供)

Nexus或Artifactory可以管理所有这些类型的包,还是我应该朝不同的方向寻找?我不反对将make文件添加到我的shell脚本项目中,这些项目只生成tar.gz文件.我只是不想走下设置工件库的道路,最终,一个小脚本,wget和一个apache服务器可以正常工作.

deployment artifacts nexus artifactory

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

Maven私有远程存储库设置

我正在尝试为我们的团队建立一个私人远程存储库.现在存储库提供以下服务,到目前为止我已经尝试过 -

  • 当发出' mvn compile '时,它会搜索"〜/ .m2"中的依赖项.如果在那里找不到它,那么它将进入远程私有存储库,当依赖关系仍然不存在时,它将进入中央存储库.

  • 在编译之前,我必须将所有依赖项与校验和和元数据一起放在我们的私有(和远程)存储库中.

  • 当我们需要一个工件(例如 - spring-mvc)时,我们需要将它与该工件的所有依赖项(spring-mvc)一起放在远程私有存储库中.在这种情况下,从我们的远程私有存储库下载"spring-mvc".但是,"spring-mvc"的依赖关系不会从我们的远程私有存储库下载.它们从中央存储库下载.

现在我要做的是 -

  • 以这样一种方式配置专用远程存储库"R",即我不必手动将所有依赖项放入其中.当首先发出"mvn编译"时; 在"〜/ .m2"中搜索依赖项,如果没有找到,则它将转到私有远程存储库"R".如果在'R'中找到依赖关系,那么"〜/ .m2"将从'R'获得它.如果在'R'中找不到依赖关系,则从中央存储库下载这些依赖关系,并将依赖关系保存在'R'中以供进一步使用.之后'〜/ .m2'将从'R'获得它们.在这里,我不需要手动将依赖项放在我们的远程私有存储库"R"中.

  • '〜/ .m2'将从远程私有存储库'R'获取"spring-mvc"(这是我项目的pom.xml中提到的主要依赖项)的所有依赖项,并且'R'将从相应的中央存储库获取它们.

任何人都可以建议某种方式/或教程参考以满足上述两个目标吗?提前致谢.

编辑:我尝试过Nathaniel Waisbrot的回答和nexus-2.7.0-06-bundle.经过几个小时的努力,我可以在使用jre-7时进行设置.使用jre-6,无法启动nexus.但我们的项目是使用JDK-6部署的.我们不想更改当前jre版本.用jre-6 apache-archiva就行了.但我不确定我是否能够实现上一节中的所有目标.是否有任何archiva用户/专家可以告诉我是否可以在上一节中实现这些目标?

settings repository archiva nexus maven

24
推荐指数
3
解决办法
3万
查看次数

如何备份nexus存储库管理器

nexus书:http://www.sonatype.com/books/nexus-book/reference/.似乎没有花时间考虑如何备份nexus存储库.如果我正在安装我的快照并将其发布到本地存储库中,那么我可能需要备份它.但是,我真的不想备份任何可以从远程存储库轻松下载的内容.

一些谷歌搜索似乎也没有透露规范的答案,所以也许后人可以在这里记录.

谢谢,内森

backup maven-2 nexus

23
推荐指数
1
解决办法
1万
查看次数

如何配置maven项目以将快照和发布部署到Nexus?

如何配置maven项目以将快照和发布部署到Nexus?

<distributionManagement>
    <repository>
        <id>InternalReleases</id>
        <name>Internal Releases</name>
        <url>http://192.168.16.232:8081/nexus/content/repositories/releases/</url>
    </repository>
    <repository>
        <id>InternalSnapshots</id>
        <name>Internal Snapshots</name>
        <url>http://192.168.16.232:8081/nexus/content/repositories/snapshots/</url>
    </repository>
</distributionManagement>
Run Code Online (Sandbox Code Playgroud)

此配置在Eclipse 3.8中使用m2e 1.2创建错误

Project build error: Non-parseable POM D:\Workspaces\W\Parent\pom.xml: Duplicated tag: 'repository' (position: START_TAG 
 seen ...
Run Code Online (Sandbox Code Playgroud)

当pom的版本以-SNAPSHOT为后缀并在RELEASE时部署到InternalReleases存储库时,我希望将工件部署到InternalSnapshots存储库.这应该使用相同的pom.xml文件并执行相同的mvn deploy命令.

deployment nexus maven

23
推荐指数
2
解决办法
4万
查看次数

使用Nexus https npm注册表代理时,如何在.npmrc中设置_auth?

上下文

  1. 我的.npmrc文件似乎被正确读取(npm config ls -l从命令行和Maven构建中检查).

  2. npm运行的机器无法直接连接到网络,它只能连接到Nexus npm注册表网址.因此,代理属性proxyhttps-proxy未设置.

  3. 由于对Nexus的访问受到限制,我已在Nexus中生成了访问令牌.

  4. Nexus安全令牌由用户名和密码组成,两者都包含/通常必须"url编码"的字符

  5. 正如预期的那样,使用此配置时,运行时npm install检测不到代理.

  6. Nexus npm注册表代理似乎设置正确(我可以使用生成的令牌连接后使用Web浏览器访问json文件和下载tgz文件)

  7. 如果我设置registryhttp://registry.npmjs.org/和评论_auth,email,always-auth,strict-ssl性能,并添加proxyhttps-proxy配置,npm install按预期工作(但我无法做到这一点的目标环境)

.npmrc文件内容

; Nexus proxy registry pointing to http://registry.npmjs.org/
registry = https://<host>/nexus/content/repositories/npmjs-registry/ 

; base64 encoded authentication token
_auth = <see question below>

; required by Nexus
email = <valid email> …
Run Code Online (Sandbox Code Playgroud)

nexus npm npm-install

23
推荐指数
4
解决办法
4万
查看次数

sbt:未经授权发布到公司Nexus存储库

快速解决

所需的凭证需要nexus定义的确切领域.请参阅下文,了解如何找到您定义的那个,但肯定是"Sonatype Nexus Repository Manager".正常情况下,将其余详细信息添加到凭据.

C:/data/user/.sbt/.credentials

realm=Sonatype Nexus Repository Manager
host=nexus
user=repouser
password=password
Run Code Online (Sandbox Code Playgroud)

build.sbt credentials + = Credentials(Path.userHome /".sbt"/".credentials")

publishTo <<= version { v: String =>
  val nexus = "http://nexus/" 
  if (v.trim.endsWith("SNAPSHOT"))
    Some("snapshots" at nexus + "content/repositories/libs-snapshots")
  else
    Some("releases" at nexus + "content/repositories/libs-releases")
  }
Run Code Online (Sandbox Code Playgroud)

问题

我正在尝试将jar发布到公司的nexus repo中.

我可以从Maven做到这一点,并且我已经配置了存储库以便能够使用Nexus提供内部jar.但是,由于授权,发布失败.

> publish
[info] Packaging c:\app\target\scala-2.10\app_2.10-0.1-sources.jar ...
[info] Wrote D:\app\target\scala-2.10\app_2.10-0.1.pom
[info] :: delivering :: com.app#app_2.10;0.1 :: 0.1 :: release :: Tue May 07 18:28:44 BST     2013
[info] Done packaging.
[info]  delivering ivy file …
Run Code Online (Sandbox Code Playgroud)

scala nexus ivy maven sbt

22
推荐指数
1
解决办法
1万
查看次数

Nexus接受上传,但表示失败了

当我mvn release:perform在父POM上执行时,服务器正在响应有关其中一个子项目(文件名已编辑)的错误:

[错误]无法在项目上执行目标org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file(default-cli):无法部署工件:无法将工件从/向存储库传输:无法转移文件.返回码为:400,ReasonPhrase:错误请求.

但是,此子项目的所有文件都已成功上载!我看到一个新目录(以发行版本号命名),它包含了人们所期望的所有.jar,.pom,.md5和.sha1文件.

我无法访问Nexus服务器,但我想知道是什么原因造成的,以及如何解决它.是否有可能Maven试图两次上传这个特定的子项目?如果是这样,为什么Maven会这样做,我怎么能阻止它呢?

更新:如果你有同样的问题,请与最upvotes答案这个职位.我跑了mvn help:effective-pom,发现有问题的项目实际上有两次部署阶段的执行.删除其中一个执行解决了我的问题.

java nexus maven

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

Nexus支持大量上传工件?

我想知道我们是否可以将工件大量上传到Nexus中的存储库.

maven-2 artifacts nexus

21
推荐指数
1
解决办法
1万
查看次数

使用gradle将源上载到nexus存储库

我使用maven插件成功地将我的罐子上传到nexus存储库,但它没有上传源代码.这是我的配置:

uploadArchives {
    repositories{
        mavenDeployer {
            repository(url: "http://...") {
                 authentication(userName: "user", password: "myPassword")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我搜索并发现我可以通过添加新任务来添加源.

task sourcesJar(type: Jar, dependsOn:classes) {
     classifier = 'sources'
     from sourceSets.main.allSource
}

artifacts {
     archives sourcesJar
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我认为必须有一个更好的解决方案,通过配置maven插件,像uploadSource = true这样:

uploadArchives {
    repositories{
        mavenDeployer {
            repository(url: "http://...") {
                 authentication(userName: "user", password: "myPassword")
            }
            uploadSources = true
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java nexus gradle

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