标签: nexus

如何使用常春藤和nexus发布第三方文物

我忙着用常春藤弄湿我的脚.我在我的本地PC上运行了一个现有的nexus存储库,以及一个现有的ant构建脚本.
两者都很好.

部分构建脚本有一些文件可以从网络共享中检索我们的第三方jar文件(log4j,xmlbeans,junit,pdf等等) - 最好是笨拙的.

我想使用ivy的依赖机制从nexus存储库中检索这些文件并在构建中使用它.每个3rdparty lib都有一个名称和一组任意文件(jar,dll,license.dat,xml等).

由于我们有大量的这些第三方库,每个lib都有多个文件 - 手动上传到nexus不是一个选项 - 我需要一些我可以用来获取一组文件,给它们一个lib名称,一个版本号和将结果上传到nexus.然后我需要能够从常春藤中检索这个.

我设法让上传部分工作,但撤销过程不起作用.使用我们的xmlbeans lib作为起点,我创建了以下ivy.xml文件

<ivy-module version="1.0">  
<info organisation="thirdparty_tools" module="xmlbeans" status="integration">  
<publications>  
  <artifact name="jsr173_api" type="jar" ext="jar"/>  
  <artifact name="saxon-dom" type="jar" ext="jar"/>  
  <artifact name="saxon-xpath" type="jar" ext="jar"/>  
  <artifact name="saxon" type="jar" ext="jar"/>  
  <artifact name="xbean" type="jar" ext="jar"/>  
  <artifact name="xbean_xpath" type="jar" ext="jar"/>  
  <artifact name="xmlpublic" type="jar" ext="jar"/>  
</publications>  
</ivy-module>  
Run Code Online (Sandbox Code Playgroud)

然后将一些蚂蚁脚本发布到nexus:

 <ivy:resolve/>  
    <ivy:publish <ivy:publish resolver="thirdparty" forcedeliver="true" update="true" revision="${version}" overwrite="true">  
      <artifacts pattern="[artifact].[ext]"/>  
    <ivy:publish/>  
Run Code Online (Sandbox Code Playgroud)

这一切都很好.它将所有jar文件发布到预期目录中的nexus.

当我尝试在我的构建中使用它时遇到麻烦.我为我的构建创建了以下ivy.xml文件:

<ivy-module version="1.0">  
    <info organisation="myCompany" module="GLB_Data"/>  
    <dependencies>  
        <dependency org="thirdparty_tools" name="xmlbeans" rev="2.2.0"/>  
    </dependencies>  
</ivy-module> 
Run Code Online (Sandbox Code Playgroud)

然后当我运行我的构建时 - 它找不到任何东西: …

ant nexus ivy

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

使用ant构建工具从nexus下载jar,在Maven中自动完成

我有一个build.xml(基于ant),它需要来自nexus的一些jar才能复制到现有的lib文件夹中.即,当它构建时,它应该从nexus复制jar,并定义一些版本,然后在lib中复制并进行编译.就像在maven中发生一样,我们定义了工件及其版本.如果更改将自动从maven repo下载.我如何在基于ant的构建中执行此操作?

专家请教.

ant jar download nexus maven

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

Nexus代理存储库

我是Nexus的新手.我已经为http://reflections.googlecode.com/svn/repo/添加了一个代理存储库.它成功添加.我可以在"浏览远程"选项卡中浏览存储库内容.但是,当我将我的maven指向我的本地Nexus镜像并在访问依赖反射时执行失败,它无法在我的nexus存储库中找到它.

proxy nexus

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

Maven和快照?

我正在做一个快速的项目,其中,我正在直接研究一个不断变化的模块.其他人直接依赖于模块,因此,我将公共接口存根并将其部署到我们的本地Nexus存储库中以0.0-SNAPSHOT供使用.

现在我已经完成了模块的第一次迭代,我试图重新部署更新的工件.阅读有关快照的内容,其他人声称快照应代表当前的主干.这是真的?

Maven在重新部署时会自动增加我的快照版本 - 所以,从那里开始0.0-SNAPSHOT,我0.0-SNAPSHOT只是,它是同一个快照的迭代3或4.什么时候应该翻到0.1-SNAPSHOT?是否有一个插件我可以用来自动化版本更改,而不是手动编辑我的pom?

在集成测试和我们的第一个系统版本的部署之后1.0-RELEASE,我的模块应如何进展?我应该将模块移动到1.0-SNAPSHOT其上并继续吗?是否应该遵循一种方法,还是由开发人员自行决定?

svn versioning conventions nexus maven

4
推荐指数
1
解决办法
3671
查看次数

如何配置maven settings.xml以访问apache代理后面的nexus

我从nexus获取工件时遇到了麻烦,我希望社区可以帮助我.在nexus Web应用程序中访问和工作不是问题(我已将基本URL设置为https://www.fakesitename.com/nexus).

所有对https://www.fakesitename.com/nexus的呼叫都被重定向/转发/代理(正确的术语是什么?)到网络上的内部服务器

<VirtualHost *:443>
  ServerName www.fakesitename.com
  ServerAdmin webmaster@mysite.com

  DocumentRoot /var/www
  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/error.log
  LogLevel warn
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  <Proxy *>
    AddDefaultCharset Off
    Order deny,allow
    Allow from all
  </Proxy>

  ProxyRequests Off
  ProxyPreserveHost On

  ProxyPass /nexus http://192.168.0.178:8081/nexus
  ProxyPassReverse /nexus http://192.168.0.178:8081/nexus

  SSLEngine on
  SSLCertificateFile /certs/mysite/ssl.crt
  SSLCertificateKeyFile /certs/mysite/ssl.key
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

settings.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
          http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <mirrors>
    <mirror>
      <id>public</id>
      <mirrorOf>*</mirrorOf>
      <url>https://www.fakesitename.com/nexus/content/groups/public</url>
    </mirror>
  </mirrors>

<!-- What should be in here?
  <proxies>
    <proxy> …
Run Code Online (Sandbox Code Playgroud)

mod-proxy nexus http-proxy maven

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

如何使用现有的pom.xml将第三方文件发布到远程maven仓库?

我有一些第三方罐子,我想上传到我的nexus maven repo,到目前为止,我已经找到了两种方法.

mvn deploy:deploy-file -DgroupId=<group-id> \
  -DartifactId=<artifact-id> \
  -Dversion=<version> \
  -Dpackaging=<type-of-packaging> \
  -Dfile=<path-to-file> \
  -DrepositoryId=<id-to-map-on-server-section-of-settings.xml> \
  -Durl=<url-of-the-repository-to-deploy>
Run Code Online (Sandbox Code Playgroud)

我期待第三方库经常更新,当有安全更新/发布时,可能会更频繁地说四分之一.

上面两种方法都是手动的,你必须输入一个长命令或点击它来实现它.我更喜欢一个不是特定产品或需要冗长命令行选项的简单解决方案.

有没有可能写一个maven pom.xml,只是通过这样做发布第三方.tar.gz mvn deploy

我正在使用maven 3.0.5

更新根据下面的radai答案为我工作的示例pom.xml.

java nexus maven-3 maven

4
推荐指数
1
解决办法
7828
查看次数

如何将Github原始存储库添加到Sonatype Nexus作为代理存储库?

如今有很多github托管的Maven存储库.例)https://github.com/nhnopensource/nhnopensource.maven.repo

我尝试将这些存储库添加到我的Sonatype Nexus存储库管理器中作为代理存储库,但始终失败.

但是当我将存储库url直接设置为gradle/maven配置中的github存储库时,存储库工作正常.

有没有人成功将github托管的maven存储库添加到Nexus中?

github nexus maven

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

Maven distributionManagement或Server(用户和密码)作为参数

我有一个使用Nexus的远程存储库.

这些存储库要求登录,我更愿意使用登录来公开这些存储库.

这是我的settings.xml

<settings>

<servers>
    <server>
        <id>dev-repo</id>
        <username>user</username>
        <password>password</password>
    </server>
</servers>

</settings>
Run Code Online (Sandbox Code Playgroud)

开发人员正在使用pom.xml:

<distributionManagement>
            <repository>
                <id>dev-repo</id>
                <url>http://ip:port/nexus/content/repositories/dev-repo/</url>                          
            </repository>
    </distributionManagement>
Run Code Online (Sandbox Code Playgroud)

使用该配置一切正常,但我更喜欢他们必须在mvn命令中传递登录,或者命令询问提示登录而不是硬编码在settings.xml中登录

有任何想法吗?

先感谢您.

nexus maven

4
推荐指数
1
解决办法
4122
查看次数

从Nexus获取火花作业罐

给定它的maven坐标,是否有可能从Nexus提取primaryResource jar?我知道可以从Nexus提取依赖关系,但似乎无法从Nexus提取作业jar。我想知道是否还有其他人尝试过它或有相同的解决方法。谢谢。

nexus apache-spark

4
推荐指数
1
解决办法
675
查看次数

Nexus 3作为npm存储库找不到一些依赖项:npm ERR!找不到404:

我使用Nexus 3作为npm私人存储库.我有一个需要一些依赖项的项目,例如:@nodelib/fs.stat, @mrmlnc/readdir-enhanced@^2.2.1.

如果我执行以下npm install命令,一切正常:

sudo npm install -g @nodelib/fs.stat
+ @nodelib/fs.stat@1.1.0
added 1 package in 0.481s

sudo npm install -g @mrmlnc/readdir-enhanced@^2.2.1
+ @mrmlnc/readdir-enhanced@2.2.1
added 3 packages in 2.178s
Run Code Online (Sandbox Code Playgroud)

但我必须配置.npmrc以这种方式引用我的nexus npm存储库:

〜/ .npmrc:

registry=http://mynexus.com/repository/npmrepo
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试安装我的私有项目npm install -g generator-myyeomangenerator失败,因为它无法下载这些依赖项.

事实上,现在我已经设置了我的.npmrc配置,如果我直接为这些依赖项执行npm install,我得到一个404:

sudo npm install -g @nodelib/fs.stat
npm ERR! code E404
npm ERR! 404 Not Found: @nodelib/fs.stat@latest

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/myuser/.npm/_logs/2018-06-04T21_55_56_792Z-debug.log
Run Code Online (Sandbox Code Playgroud)

日志文件不提供其他信息.

来自这些依赖项的公寓,通过npm repo运行其他一些安装工作ok事件:

sudo npm …
Run Code Online (Sandbox Code Playgroud)

nexus node.js npm nexus3

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