我已经在我的本地机器上安装了nexus。我希望我的pom文件指向这个回购。我如何将自定义存储库添加到我的pom.xml文件中?添加maven nexus回购到我的pom.xml
回答
下载和部署存储库是由POM的repositories
和distributionManagement
元素来定义。但是,某些设置(如用户名和密码)不应与pom.xml一起分发。这种类型的信息应该存在于settings.xml中的构建服务器上。
<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">
...
<servers>
<server>
<id>server001</id>
<username>my_login</username>
<password>my_password</password>
<privateKey>${user.home}/.ssh/id_dsa</privateKey>
<passphrase>some_passphrase</passphrase>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<configuration></configuration>
</server>
</servers>
...
</settings>
ID:这是服务器(不是用户为登录)的是档案库/镜Maven在尝试连接到的id元素相匹配的ID。
用户名,密码:这些元素显示为一对,表示对此服务器进行身份验证所需的登录名和密码。
privateKey,密码短语:与前两个元素一样,此对指定私钥的路径(默认为${user.home}/.ssh/id_dsa
)和密码(如果需要)。密码和密码元素可能在将来被外化,但现在它们必须在settings.xml文件中设置为纯文本。
filePermissions,directoryPermissions:当在部署中创建存储库文件或目录时,这些是使用权限。每个的合法值都是一个三位数字,与* nix文件权限相对应,即。 664或775.
注意:如果您使用私钥登录到服务器,请确保您省略该元素。否则,密钥将被忽略。
所有,如果您需要的是id
,username
和password
的id
和URL
应该在pom.xml
这样的定义:
<repositories>
...
<repository>
<id>acme-nexus-releases</id>
<name>acme nexus</name>
<url>https://nexus.acme.net/content/repositories/releases</url>
</repository>
...
</repositories>
如果你需要一个用户名和密码登录服务器,你应该加密它。 Maven Password Encryption
<project>
...
<repositories>
<repository>
<id>my-internal-site</id>
<url>http://myserver/repo</url>
</repository>
</repositories>
...
</project>
“的资料库下载和部署是由仓库和POM的distributionManagement元素定义的。然而,某些设置,如用户名和密码不应该随着分布式pom.xml。这种类型的信息应该存在于构建服务器的settings.xml文件中。“ - Apache Maven site - settings reference
<servers>
<server>
<id>server001</id>
<username>my_login</username>
<password>my_password</password>
<privateKey>${user.home}/.ssh/id_dsa</privateKey>
<passphrase>some_passphrase</passphrase>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<configuration></configuration>
</server>
</servers>
从maven setting reference,你不能把你的用户名/密码在一个pom.xml
的资料库下载和部署由仓库和POM的distributionManagement元素被定义。但是,某些设置(如用户名和密码)不应与pom.xml一起分发。这种类型的信息应该存在于settings.xml中的构建服务器上。
您可以先在你的POM中添加存储库,然后在$ MAVEN_HOME/conf目录/ settings.xml中添加用户名/密码:
<servers>
<server>
<id>my-internal-site</id>
<username>yourUsername</username>
<password>yourPassword</password>
</server>
</servers>
我只能强烈建议你阅读的第一Nexus book。它将解释使用Maven存储库管理器的好处。
有关于如何将Maven构建配置才能使用Nexus一个部分:
这使我质疑为什么你改变你的POM文件?我怀疑你真正想要做的是将Nexus设置为远程存储库镜像。这是在你的Maven设置文件中完成的。
下面告诉Maven使用的Nexus作为默认存储库
<settings>
..
..
<mirrors>
<mirror>
<id>nexus</id>
<url>http://localhost:8081/nexus/content/groups/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
这是期望的行为,因为你的Nexus仓库被配置为从中央(检索缓存文物(而不是Maven Central),这是很好的构建性能)。
注:
- “公共”资源库群可能包括由您的Nexus实例(不仅仅是Maven的中央)代理其他存储库。您可能需要这种行为,因为它集中了所有存储库管理。它只是让您的构建对组织之外的人更加便携。
看起来这里的答案不支持企业用例,其中Nexus服务器有多个用户,并且基于用户ID ALONG使用像Jenkins这样的自动构建(CI)系统的基于项目的隔离(保护) 。您将无法创建settings.xml文件来满足不同项目所需的不同用户ID。我不知道如何解决这个问题,除非打开Nexus直到读取存储库的匿名访问,除非项目可以在他们的pom.xml中存储项目特定的通用用户标识。
如果你不想或者不能修改settings.xml
文件,你可以创建你的根项目一个新的,并呼吁行家把它当作一个参数与-s
参数:
$ mvn COMMAND ... -s settings.xml
- 1. maven的pom.xml订购
- 2. gradle发布jar到nexus maven回购
- 3. 针对maven nexus回购的rsync
- 4. 将maven仓库自动添加到nexus
- 5. Maven依赖项自动添加到我的pom.xml中
- 6. 在IntelliJ中添加Maven回购
- 7. 未能通过Nexus代理到maven回购
- 8. 如何配置sbt发布到私人nexus maven回购?
- 9. Gradle上传android应用程序apk到maven回购(nexus)
- 10. 将p2回购部署到Nexus
- 11. 监控nexus回购
- 12. 如何添加依赖到我的pom.xml?
- 13. Maven pom.xml添加另一个项目
- 14. 向Maven pom.xml添加cypress测试框架
- 15. 将Github回购添加到Android Studio使用Maven的依赖项
- 16. 我将如何发布java protobuf jar到我的nexus回购?
- 17. Gradle build.gradle到Maven pom.xml
- 18. 添加Hibernate 3.5.x的到一个Maven的pom.xml建立
- 19. 从JBoss的Maven的回购所有工件添加到Maven项目在Eclipse
- 20. 无法获得使用Nexus服务器的Maven回购
- 21. 的Nexus回购给503使用Maven但与浏览器
- 22. Gradle/Ivy如何读取作为Maven镜像的Nexus回购?
- 23. 添加解析器(Maven回购)到Play Framework 2.1-RC4项目?
- 24. 如何发布grails 3插件到我的本地nexus回购?
- 25. 添加一个克隆的git回购到我的本地回购
- 26. 使用Maven在eclipse-pdt中添加依赖关系到pom.xml
- 27. Nexus 3升级更改URLS for maven回购
- 28. 无法通过https/ssl与Nexus代理Maven回购
- 29. 新的maven依赖版本拉pom,而不是jar到私人nexus回购?
- 30. 任何方式发布从本地maven回购到Nexus的工件?
不一定真正。您可能能够将其放入您的POM或settings.xml中。是否应该把它放在与特定用例有关的意见问题上。声明“不能”正在阅读Maven设置参考。 – ingyhere