我正在尝试使用Maven构建project。
与README.adoc
文件中所述完全相同(PowerShell中的命令mvn clean install -DskipTests -DskipITs
)。
我遇到以下错误:
[错误]系统变量locktt未定义 [错误] npm错误!代码ELIFECYCLE [错误] npm错误! errno 1 [错误] npm错误! @信封:
SET "locktt"
[错误] npm错误!退出状态1 [错误] npm错误! [错误] npm错误! @ env脚本失败。 [错误] npm错误! npm可能不是问题。上面可能还有其他日志记录输出。
我在网上进行了快速搜索,但是找不到关于这个locktt
环境变量的任何信息。询问您是否需要有关我的系统的更多详细信息。
答案 0 :(得分:1)
它在您的pom第73行中。Maven尝试构建它,但不知道它是什么。
答案 1 :(得分:1)
我们找到了Windows用例,并为此打开了一个JIRA
答案 2 :(得分:1)
此问题是由以下pdet0
的执行引起的:
frontend-maven-plugin
这将运行<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<executions>
<execution>
<id>lock-treatment-tool execution</id>
<phase>compile</phase>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>run env -- locktt</arguments>
</configuration>
</execution>
</executions>
</plugin>
,这是一种运行程序包可执行文件的黑客,无需在npm run env -- locktt
中添加脚本,也无需使用npx。
env script是一个特殊的内置命令,可用于列出运行时脚本可使用的环境变量。
但是,npm的package.json
脚本执行的实际命令取决于平台。对于linux,它是env,对于Windows,它是SET。 Linux的env
允许最后一个参数是将在修改后的环境中执行的命令。这使env
像执行npm run env -- locktt
的黑客一样工作(在Linux上)。
在Windows上,此操作失败,因为locktt
对参数的处理不同。 SET
的意思是:显示以“ locktt”开头的变量,毫不奇怪的是,该变量失败:
[ERROR]系统变量locktt未定义