mvn依赖的对立面:得到?如何设置授权?

时间:2012-08-10 17:48:03

标签: maven

我的任务是编写与Nexus / Maven交互的脚本。我在Maven中使用的文件是放置在那里的XML文件,具体的想法是shell脚本将使用它们。实质上,这些文件是另一个应用程序的配置。

我已经完成了从存储库中提取文件的脚本,但是我在将文件放入存储库时遇到了问题。要拉取文件,我使用的是插件依赖:get。

我需要的或多或少与该插件相反。一个将使用新版本的文件更新存储库。我认为“mvn deploy:deploy-file”是我需要使用的。那会有用吗?

如果是这样,那么下一个问题就是我似乎无法弄清楚如何设置授权。我有一个定义了服务器的设置文件,其中包含正确的授权信息,但是服务器和存储库(或URL?)之间的链接丢失,授权没有正确执行。

如何将存储库URL连接到settings.xml文件中的服务器信息,以便mvn将被授权执行正确的操作? (我不知道.pom文件在哪里用于Maven,并且可能没有权限来改变它。)

谢谢,

肖恩。

2 个答案:

答案 0 :(得分:0)

deploy:deploy-file是正确的。与-Durl=http://repo:port/path-DrepositoryId=server-whatever一起使用。您的settings.xml需要包含

 <servers>
    <server>
      <id>server-whatever</id>
      <username>demo</username>
      <password>demo</password>
    </server>
  </servers>

服务器ID server-whateverrepositoryId参数匹配。

话虽如此,我会质疑Maven对此的适当性。它专为二元artifaccts而不是配置而设计。

答案 1 :(得分:0)

问题原来是在-Durl选项中。

使用依赖项:get plugin时,URL类似于:

-Durl=http://companymavenrepo

这对依赖插件工作得很好。

但是,尝试使用deploy插件将内容放入存储库时,这还不够。 URL必须包含maven服务器以及放置工件的确切存储库。 (我的术语可能已关闭。)我访问了我们的Nexus / Sonatype网页,查看了存储工件的确切存储库,然后使用了类似的东西:

-Durl=http://companymavenrepo/nexus/content/repositories/this_maven_repo

解决了授权问题,我能够毫无问题地将文件添加到存储库中。

(如果我发布了我试图使用的两个mvn命令行,这可能更容易让其他人看到。另一方面,当你在一个命令中使用带有特定值的-Durl选项时似乎也是合理的它可以在另一个命令行中保持不变。)

肖恩。