【问题标题】:mvn build failed given error , 'sqlcmd' is not recognized .?mvn build failed 给出错误,'sqlcmd' 无法识别。?
【发布时间】:2018-10-07 20:12:18
【问题描述】:

我使用 mvn 构建工具来构建我的项目。我的 sql 服务器是 MSSQL2017 。但是当我构建项目时,它失败了,就像这个错误一样。需要一些专家帮助来解决它。

    [INFO] Creating database: DatabaseConfiguration[host=CWLK-UMAYANGA,port=1433,user=spider3,password=********,catalog=schema-export_180427_083129335
[DEBUG] Executing: cmd.exe /X /C "sqlcmd -S tcp:CWLK-UMAYANGA,1433 -d master -U spider3 -P spider3 -I -r -Q "DECLARE @data_path nvarchar(256);SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1);EXEC ('CREATE DATABASE [schema-export_180427_083129335] ON ( NAME = MAIN, FILENAME = ''' + @data_path + 'schema-export_180427_083129335.mdf'', SIZE = 5MB ) LOG ON ( NAME = LOG, FILENAME = ''' + @data_path + 'schema-export_180427_083129335.ldf'', SIZE = 1MB)')""
'sqlcmd' is not recognized as an internal or external command,
operable program or batch file.
[ERROR] The following errors occured during execution:
[ERROR] 'sqlcmd' is not recognized as an internal or external command,
[ERROR] operable program or batch file.
[DEBUG] Received event (class org.apache.maven.lifecycle.internal.DefaultExecutionEvent): org.apache.maven.lifecycle.internal.DefaultExecutionEvent@638e271a

我在命令提示符下键入此查询 {"sqlcmd -S tcp:CWLK-UMAYANGA,1433 -d master -U spider3 -P spider3 -I -r -Q "DECLARE @data_path nvarchar(256);SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1);EXEC ('CREATE DATABASE [schema-export_180427_083129335] ON ( NAME = MAIN, FILENAME = ''' + @data_path + 'schema-export_180427_083129335.mdf'', SIZE = 5MB ) LOG ON ( NAME = LOG, FILENAME = ''' + @data_path + 'schema-export_180427_083129335.ldf'', SIZE = 1MB)')"},它显示为下图,并且没有给出任何错误消息。

【问题讨论】:

  • 关于您最近的编辑,由于拼写错误“它看起来像这样。没有任何错误消息”......所以如果没有错误消息,它可能有效......你有没有检查?
  • @feelingunwelcome 这个问题专门针对“mvn.bat”文件(maven 的一部分)。该用户能够运行“mvn”,但它抱怨找不到“sqlcmd”(不是 maven 的一部分,是 SQL 服务器的一部分)。所以我不认为这些问题是重复的。
  • @uma 您是否检查过它是否创建了您的数据库,因为没有错误? (如果您已经显示了数据库列表,则可能需要在 SqlServerMgmtStudio 中按刷新。)
  • 我的问题不是“stackoverflow.com/questions/32706000/…”这个。 m mvn 命令正常工作。 @Richardissimo 正确,t 是关于 'sqlcmd'

标签: sql-server maven maven-3 sqlcmd


【解决方案1】:

错误消息意味着它无法在环境的“路径”变量中的任何文件夹中为执行构建的用户找到sqlcmd

我肯定会建议为 sqlcmd 指定文件扩展名,这样它就不必猜测,避免歧义。

如果这不能解决问题,请在构建中指定 sqlcmd 的完整路径,或修改该用户的“路径”环境变量以包含包含 sqlcmd 的文件夹。

您可以将cmd.exe "set path" 添加到您的构建中,以使其显示路径变量中的值。

【讨论】:

  • 我试图在我的 MSSQL Server(2017) 安装、140/tools/bin、目录中找到类似的文件,但不是这样的文件。 ?
  • @uma 如果找不到,要么检查 SQL 安装功能,然后打开包含命令行实用程序的那个,要么通过downloading from Microsoft 独立安装(此链接可能有也可能没有适合您的安装,因此请在下载前检查您需要的版本。
  • 我会再次尝试上述解决方案。并给予反馈。
猜你喜欢
  • 2012-09-13
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 2020-06-21
  • 1970-01-01
  • 2011-02-05
  • 1970-01-01
相关资源
最近更新 更多