我有一个Artifactory仓库,它位于基本身份验证之后.如何配置settings.xml以允许访问?
<mirrors>
<mirror>
<id>artifactory</id>
<mirrorOf>*</mirrorOf>
<url>https://myserver.example.com/artifactory/repo</url>
<name>Artifactory</name>
</mirror>
</mirrors>
<servers>
<!--
This server configuration gives your personal username/password for
artifactory. Note that the server id must match that given in the
mirrors section.
-->
<server>
<id>Artifactory</id>
<username>someArtifactoryUser</username>
<password>someArtifactoryPassword</password>
</server>
Run Code Online (Sandbox Code Playgroud)
因此,server tag是artifactory用户的用户凭据,但我还需要提供另一个用户/密码来完成basic-auth.我会把它放在哪里?!?
由于磁盘空间的考虑,我只希望在我的存储库中保留一个版本的任何快照.而不是保留带有时间戳后缀的多个版本
例如ecommerce-2.3-20090806.145007-1.ear
我怎么设置它?这是构建设置或存储库(Artifactory)设置
谢谢!
我正在尝试向我的组织介绍体面的参考管理.之前使用过Nexus和Maven,我知道它远远优于在本地构建所有东西的方法.由于这是一个.Net商店,我想使用NuGet而不是Maven.我知道二进制存储库将是最重要的一点,但没有在二进制存储库中托管NuGet存储库的经验.
在这种情况下,有任何理由支持Nexus或Artifactory吗?我们使用Jenkins和svn作为我们的CI,如果这有任何区别的话.
在机器本地我有一个与maven存储库一起安装的Artifactory,我有一个非常简单的.pom文件,我的项目指向它:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>MYGROUP</groupId>
<artifactId>NAME</artifactId>
<packaging>jar</packaging>
<version>VERSION</version>
<build>
<sourceDirectory>SRCFOLDER</sourceDirectory>
<testSourceDirectory>TESTFOLDER</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>local-artifactory</id>
<name>Artifactory</name>
<url>http://localhost:8081/artifactory/repo</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>local-artifactory-plugins</id>
<name>Artifactory Plugins</name>
<url>http://localhost:8081/artifactory/repo</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>MYGROUP</groupId>
<artifactId>DEPENDENCY1</artifactId>
<version>bla-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>MYGROUP</groupId>
<artifactId>DEPENDENCY2</artifactId>
<version>bla-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
所以我声明了本地神器库,意图是每次都会重新加载所有内容.此外,我有几个依赖,这是快照.
现在我正在使用maven 3.0.5,当我正在编译它时它工作正常,但它根本不是刷新快照.决不.永远.日志文件如下所示:
[DEBUG] Could not find metadata MYGROUP:DEPENDENCY1:bla-SNAPSHOT/maven-metadata.xml in local (/opt/myuser/.m2/repository)
[DEBUG] …
Run Code Online (Sandbox Code Playgroud) 我的团队是Maven的新手,我们无法找到关于为我们的项目选择artifactID的任何明确指导.
我知道命名约定指南说应该是artifactIDs
"无论你想要什么名字都用小写字母和没有奇怪的符号"
但是我的组中的一些人想要对groupID 和 artifactID 使用反向域名样式.
基于上述指南以及我在中央存储库中看到的所有示例,我不认为有反向域样式artifactID是有意义的,但我不知道这样做是否实际上是无效的或仅仅是不满意.我依稀记得读过一些关于各种存储库管理器无法有效处理包含句点(.)字符的artifactID的内容,但我不记得我在哪里阅读它并且我现在找不到它.
对Maven artifactID中允许的字符有什么规则(如果有的话)?
我正在尝试将zip文件部署到远程内部maven repo.(神器集成到hudson中).
的pom.xml
...
<modelVersion>4.0.0</modelVersion>
<groupId>mygroupId</groupId>
<artifactId>myartifactid</artifactId>
<version>1.0-SNAPSHOT</version>
<distributionManagement>
<repository>
<id>hudson</id>
<name>hudson-releases</name>
<url>http://url to repo</url>
</repository>
</distributionManagement>
...
Run Code Online (Sandbox Code Playgroud)
的settings.xml
<servers>
<server>
<id>hudson</id>
<username>username</username>
<password>password</password>
</server>
</servers>
Run Code Online (Sandbox Code Playgroud)
maven部署
mvn deploy:deploy-file -Durl=http://url -Dfile=file-1.0.0.zip -Dpackaging=zip -DpomFile=pom.xml
Run Code Online (Sandbox Code Playgroud)
maven退出,返回码为401.
看看神器的日志
2011-07-15 13:52:50,090 [DENIED DEPLOY] libs-release-local:somefile.zip for anonymous/192.168.220.146.
Run Code Online (Sandbox Code Playgroud)
我不明白为什么maven不使用提供的凭据.我在这做错了什么?
我需要向Artifactory部署一个自定义jar以及从我的Java项目生成的jar.目前我能找到的唯一方法是通过命令行目标使用:
mvn deploy:deploy-file -DgroupId=<group-id> \
-DartifactId=<artifact-id> \
-Dversion=<version> \
-Dpackaging=<type-of-packaging> \
-Dfile=<path-to-file> \
-Durl=<url-of-the-repository-to-deploy>
Run Code Online (Sandbox Code Playgroud)
有没有办法将其包含在pom文件中?作为一个插件还是什么?
我们有一组文件,我们希望专门部署到artifactory,测试结果.符合以下模式的文件似乎始终如一409 rejected the resolution of an artifact due to conflict in the snapshot release handling policy
.该文件遵循格式abcxyz-test-results.json
.我们有其他结果文件只是test-results.json
上传就好了.值得注意的是,在遇到409之前,所有其他工件都会成功上传.
我们的存储库使用maven-2-default存储库布局.包含正则表达式设置为**/*
,我们不定义任何排除.我的下一步是增加Artifactory在遇到此错误时产生的日志记录的详细程度,但我不确定这是否会有成效.
关于我们违反此文件的快照处理策略,我感到很遗憾.关于我可以采取什么样的调试步骤,或者实际的冲突可能是什么的任何想法将不胜感激.
我正在尝试将项目部署到我们的Artifactory存储库.用户qazwart
是管理员,具有部署到服务器的权限.我在该settings.xml
文件下的ID <central>
和<snapshots>
ID 下有该用户的正确信息.我<distributionManagement>
在pom.xml
文件的部分中有正确的URL .看起来一切都设置正确.然而,当我尝试部署时,我收到Return code is: 405, ReasonPhrase: Method Not Allowed. -> [Help 1]
错误.
我应该寻找或尝试什么?
输出mvn deploy
(我在[ERORR]
章节中添加了换行符以使其更具可读性):
$ mvn deploy
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] ....
[INFO] ------------------------------------------------------------------------
[INFO] Building Project Aggregate POM 2.5.2
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ rez ---
[INFO] Installing /home/qazwart/project/workspace/pom.xml to \
/home/tomcat/.m2/repository/com/vegicorp/proj/2.5.2/proj-2.5.2.pom
[INFO]
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ …
Run Code Online (Sandbox Code Playgroud) 我添加了一个类似于myscope:registry=https://myprivatedomain.com/artifactory/api/npm/npm-myregistry-release/
我的.npmrc
文件的注册表.
当我这样做npm install @myscope/mypackage
时说404 Not Found.当我捕获调试日志时,它有错误7 http fetch GET 404 https://myprivatedomain.com/artifactory/api/npm/npm-myregistry-release/@myscope%2fmypackage 1463ms
,这是奇怪的,因为如果我这样做,curl https://myprivateregistry.com/@myscope%2fmypackage
我会看到一个响应.知道我可能配置错了吗?
-i
在curl上使用给了我所有你想要的适当的东西,比如200:
HTTP/1.1 200 OK
Date: Fri, 20 Jul 2018 19:03:17 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Server: Artifactory/5.10.3
X-Artifactory-Id: 3cfb3447e11ab4943a37f53d7a5dcd357274261d
X-Artifactory-Node-Id: art2
ETag: c3636860e64da7eda14f65ff25c1e8ad11266adc
Run Code Online (Sandbox Code Playgroud)
我做了npm search @myscope
,什么都没发现.然后我更新.npmrc
到只是registry=https://myprivatedomain.com/artifactory/api/npm/npm-myregistry-release/
并运行搜索.我看到包裹出现了.尽管现在搜索工作,但在我安装时仍然会说404.
我让我的同事使用相同的npm配置,它对他有用.我关闭了我的终端并重新启动(如果我使用npm登录以某种方式设置了一些不好的东西,作为一个完整性检查)并且仍然有问题.如果我这样做npm logout
并尝试安装,我会得到一个401.然后我再次做npm login
了回到了E404
我也进入了我的.gitconfig
注释并且这样说insteadOf
:
#[url "https://"]
# insteadOf = git://
Run Code Online (Sandbox Code Playgroud)
老实说,不确定为什么会在那里,但似乎值得为此评论一下.
artifactory ×10
maven ×6
maven-2 ×2
nexus ×2
archiva ×1
dependencies ×1
deployment ×1
hudson ×1
java ×1
jenkins ×1
maven-3 ×1
npm ×1
nuget ×1
teamcity ×1