我忙着用常春藤弄湿我的脚.我在我的本地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)
然后当我运行我的构建时 - 它找不到任何东西: …
我有一个build.xml(基于ant),它需要来自nexus的一些jar才能复制到现有的lib文件夹中.即,当它构建时,它应该从nexus复制jar,并定义一些版本,然后在lib中复制并进行编译.就像在maven中发生一样,我们定义了工件及其版本.如果更改将自动从maven repo下载.我如何在基于ant的构建中执行此操作?
专家请教.
我是Nexus的新手.我已经为http://reflections.googlecode.com/svn/repo/添加了一个代理存储库.它成功添加.我可以在"浏览远程"选项卡中浏览存储库内容.但是,当我将我的maven指向我的本地Nexus镜像并在访问依赖反射时执行失败,它无法在我的nexus存储库中找到它.
我正在做一个快速的项目,其中,我正在直接研究一个不断变化的模块.其他人直接依赖于模块,因此,我将公共接口存根并将其部署到我们的本地Nexus存储库中以0.0-SNAPSHOT
供使用.
现在我已经完成了模块的第一次迭代,我试图重新部署更新的工件.阅读有关快照的内容,其他人声称快照应代表当前的主干.这是真的?
Maven在重新部署时会自动增加我的快照版本 - 所以,从那里开始0.0-SNAPSHOT
,我0.0-SNAPSHOT
只是,它是同一个快照的迭代3或4.什么时候应该翻到0.1-SNAPSHOT
?是否有一个插件我可以用来自动化版本更改,而不是手动编辑我的pom?
在集成测试和我们的第一个系统版本的部署之后1.0-RELEASE
,我的模块应如何进展?我应该将模块移动到1.0-SNAPSHOT
其上并继续吗?是否应该遵循一种方法,还是由开发人员自行决定?
我从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) 我有一些第三方罐子,我想上传到我的nexus maven repo,到目前为止,我已经找到了两种方法.
Run Code Online (Sandbox Code Playgroud)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>
我期待第三方库经常更新,当有安全更新/发布时,可能会更频繁地说四分之一.
上面两种方法都是手动的,你必须输入一个长命令或点击它来实现它.我更喜欢一个不是特定产品或需要冗长命令行选项的简单解决方案.
有没有可能写一个maven pom.xml,只是通过这样做发布第三方.tar.gz mvn deploy
我正在使用maven 3.0.5
更新根据下面的radai答案为我工作的示例pom.xml.
如今有很多github托管的Maven存储库.例)https://github.com/nhnopensource/nhnopensource.maven.repo
我尝试将这些存储库添加到我的Sonatype Nexus存储库管理器中作为代理存储库,但始终失败.
但是当我将存储库url直接设置为gradle/maven配置中的github存储库时,存储库工作正常.
有没有人成功将github托管的maven存储库添加到Nexus中?
我有一个使用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中登录
有任何想法吗?
先感谢您.
给定它的maven坐标,是否有可能从Nexus提取primaryResource jar?我知道可以从Nexus提取依赖关系,但似乎无法从Nexus提取作业jar。我想知道是否还有其他人尝试过它或有相同的解决方法。谢谢。
我使用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 ×10
maven ×6
ant ×2
apache-spark ×1
conventions ×1
download ×1
github ×1
http-proxy ×1
ivy ×1
jar ×1
java ×1
maven-3 ×1
mod-proxy ×1
nexus3 ×1
node.js ×1
npm ×1
proxy ×1
svn ×1
versioning ×1