我们有一个公司代理,阻止我使用maven-frontend-plugin。
问题是,要获取npm和bower依赖项,我们使用内部Artifactory,因此我们不应该为此设置任何代理设置。但实际的可执行文件是直接获取的,因此要获取它们我们需要代理。并且前端插件似乎不支持特定域的例外。
那么有一种简单的方法可以将npm和nodejs可执行文件上传到我们的内部工件中,以便我们可以完全跳过代理吗?或另一种解决方法?
修改
我在这里添加解决方案是为了方便,因为我需要修改下面批准的答案。
在Artifactory中设置两个远程存储库,一个到nodejs(https://nodejs.org/dist/
),另一个到npm(https://registry.npmjs.org/npm/-/
)。
编辑你的maven-frontend-plugin配置:
<execution>
<!-- optional: you don't really need execution ids,
but it looks nice in your build log. -->
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<!-- optional: default phase is "generate-resources" -->
<phase>generate-resources</phase>
<configuration>
<nodeVersion>v0.12.1</nodeVersion>
<npmVersion>2.14.1</npmVersion>
<!-- use the URL for the repository you created in step 1 -->
<nodeDownloadRoot>https://artifactory.my company.com/artifactory/nodejs.dist/</nodeDownloadRoot>
<npmDownloadRoot>https://artifactory.my company.com/artifactory/npm.dist/</npmDownloadRoot>
</configuration>
</execution>
可能只使用nodejs repo(但是npm仅适用于版本1.4.9)将npmDownloadRoot更改为:
<npmDownloadRoot>https://artifactory.my company.com/artifactory/nodejs.dist/npm/</npmDownloadRoot>
不要忘记从maven settings.xml
答案 0 :(得分:5)
要从Artifactory安装节点和npm可执行文件,您应该:
downloadRoot
属性来完成,例如:<execution>
<!-- optional: you don't really need execution ids,
but it looks nice in your build log. -->
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<!-- optional: default phase is "generate-resources" -->
<phase>generate-resources</phase>
<configuration>
<nodeVersion>v0.10.18</nodeVersion>
<npmVersion>1.3.8</npmVersion>
<!-- use the URL for the repository you created in step 1 -->
<downloadRoot>http://localhost:8081/artifactory/repo-id/</downloadRoot>
</configuration>
</execution>
有关详细信息,请参阅插件文档中的installing node and npm
答案 1 :(得分:0)
使用Artifactory代理npm注册表并托管自己的npms和可执行文件是一个很好的决定,你的管理员做得很好。
要从UI部署任何文件到Artifactory,您可以使用“部署”选项卡(Artifactory 3)或“工件浏览器”(Artifactory 4)中的“部署”按钮。
另一个选项(可能更可取)将使用npm publish
。 User Guide提供了有关如何执行此操作的详细说明。如果您正在使用Artifactory 4,您还可以单击Artifact Browser屏幕中的Set Me Up按钮:
适用于任何文件的第三个选项是a simple PUT HTTP request。