常见问题

Maven 相关问题

Q:Maven 的 settings.xml 配置文件在哪儿?

在生成 Maven 类型制品时,您需要配置您的 settings 文件,通常这个文件存放的位置有如下几个地方,您都可以按需使用,只不过配置生效的范围和优先级不同:

  1. 全局配置: ${M2_HOME}/conf/settings.xml

    如果您不记得 Maven 的安装目录 ${M2_HOME},您可以在终端中执行 echo ${M2_HOME} 或者 mvn -version 就可以看到 Maven home 的路径。

  2. 用户配置: ${user.home}/.m2/settings.xml

    您可以通过 echo 环境变量的方式找到该文件目录,有时候这个目录下是没有 settings.xml 文件,您可以去全部配置里拷贝一份 settings.xml 再进行修改。

  3. 指定路径下的 settings.xml

    例如您在执行 mvn 命令时可以指定配置文件:mvn deploy –settings settings.xml ( 后面跟上 settings.xml 文件路径即可 )。这个配置文件就只会在您该次命令生效。

在终端执行 mvn 相关命令时,settings.xml 配置生效的优先级:指定路径 > 用户配置 > 全局配置。

除了在终端当中执行 mvn 命令,有时候你在 Eclipse 等 IDE 中也会用 Maven,该怎么修改 settings.xml 文件的配置?

以 Eclipse 为例(其它类型 IDE 网上也有丰富的资料供参考):

  1. 点击 Preferences 进入偏好设置

  1. 在 Maven -> User Settings 当中您就可以看到您使用的配置文件路径,并且修改配置文件。

npm 相关问题

Q:如何将 npm @scope 指向 CODING 私有制品库

1: 可以通过配置 .npmrc 来指定 @scope 的 registry。

例如: 有一个 npm 包,位置信息如下:

  • 企业: my-team
  • 项目: my-project
  • 制品仓库: my-npm-repo
  • 名: @my-scope/my-pkg 。

可以通过配置 .npmrc,让 package.json 中的 @my-scope/my-pkg 指向 https://my-team-npm.pkg.coding.net/my-project/my-npm-repo/

@my-scope:registry=https://my-team-npm.pkg.coding.net/my-project/my-npm-repo/

2: 直接将 npm 包的 registry 指向 CODING 私有制品库。

直接点击 npm 制品库指引页面中的【使用访问令牌生成配置】生成 .npmrc。

请妥善保管生成的配置:

registry=https://my-team-npm.pkg.coding.net/my-project/my-npm-repo/
always-auth=true
//my-team-npm.pkg.coding.net/my-project/my-npm-repo/:username=xxxxxx
//my-team-npm.pkg.coding.net/my-project/my-npm-repo/:_password=xxxxx
//my-team-npm.pkg.coding.net/my-project/my-npm-repo/:email=xxxxx

由于 CODING 的 npm 制品库支持代理功能,可以直接将 npm registry 设置为 CODING 私有制品库,公共制品也可以被拉取到。

Q:如何找到我本地的 .npmrc 文件 ?

在终端执行命令:

npm config list

Q:如何在持续集成中使用 npm 制品库 ?

凭证属于私密信息,想要在持续集成中向 CODING 制品库发布或下载 npm 包,需要在 .npmrc 中使用有效的拉取或者推送凭据,直接把凭据信息提交到代码仓库中又会有安全风险。

解决方法:npm 支持用户通过环境变量来读取配置,如:

registry=https://my-team-npm.pkg.coding.net/my-project/my-npm-repo/
always-auth=true
//my-team-npm.pkg.coding.net/my-project/my-npm-repo/:username=${NPM_USERNME}
//my-team-npm.pkg.coding.net/my-project/my-npm-repo/:_password=${NPM_PASSWORD_ENCODED}
//my-team-npm.pkg.coding.net/my-project/my-npm-repo/:email=required but not used
上一篇制品版本覆盖策略
文档是否对您有用?
感谢反馈有用
感谢反馈没用