我尝试将自定义jar添加到我的项目中(到pom.xml)。当我做手术的时候
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<myGroup> -DartifactId=<myArtifactId> -Dversion=<myVersion> -Dpackaging=<myPackaging> -DlocalRepositoryPath=<path>我实际上收到了一个错误:指定的文件不存在。但是文件在文件夹里-这就是问题所在。我怎么能解决这个问题?或者不用这个步骤就可以添加自定义jar?我知道范围,但它不能正常工作- maven变量${basedir}不能在systemPath中使用。
Maven 3.3.9
更新1:实际上,现在我发现了一些新的: Maven不喜欢groupId和版本中的点。经过一些尝试之后,我安装了文件,但这是错误的路径,因为我在maven repo中的org_my_local_file文件夹中接收到了文件,而不是(例如)org_my_local_file树。
发布于 2016-04-06 20:07:38
我已经做了很多次了,结果还是如愿以偿。你到底是什么意思?
Maven不喜欢groupId和版本中的点。
你有什么例外?你得到org_my_local_file是因为我觉得你很生气。在“反对”( groupId against‘_)中?
您可以在这里找到一个很好的教程,在这里您可以看到它是如何正确完成的:
如何将自定义库包含到maven本地存储库中?
编辑: --看起来你在使用windows。特别是powershell已知会导致问题。看看这里,也许你不得不转义一些字符,有一些可能的解决方案:
发布于 2018-05-31 17:31:31
我在尝试初始化我们的基本开发环境时遇到了这个问题。我们使用Ant脚本初始化Maven、我们的开发人员服务器和其他工具,包括在本地Maven存储库中安装一些第三方jars。这个错误,“指定文件'<path>\true'不存在”是在从Ant1.9.11中调用Maven时发生的。
我还使用这个答案来指定Ant脚本中标识的路径,并在运行批处理脚本之前在批处理脚本模板中设置它们。具体来说,这个答案为构建批处理脚本提供了很多帮助:https://stackoverflow.com/a/36298099/2336934。没花多少钱:
<!-- generate the batch file -->
<tempfile property="temp.file" suffix=".properties" deleteonexit="true" destdir="${env.TEMP}" />
<echoproperties destfile="${temp.file}" />
<replaceregexp file="${temp.file}" match="([^=]*)=" replace="@\1@=" byline="true" />
<copy file="${basedir}/scripts/install-jars.template" tofile="${basedir}/scripts/install-jars.bat" />
<replace file="${basedir}/scripts/install-jars.bat" replacefilterfile="${temp.file}" />
<echo message="Running batch file for Maven setup" />
<exec executable="${basedir}/scripts/install-jars.bat" />
<delete file="${basedir}/scripts/install-jars.bat" deleteonexit="true" />传递的参数没有任何问题,但必须正确指定。在命令窗口中临时在脚本中执行您要执行的命令,对于在尝试嵌入脚本之前验证命令语法和函数非常有用。
我甚至创建了一个空的true文件来满足错误,该错误抱怨该文件不是有效的POM文件。用基本POM内容填充它会导致另一个错误。所以读者要小心,这个关于“真实不存在”的生意是一种“红鲱鱼”。
将Maven install:install-file命令移出批处理文件是解决这个问题的关键。它还允许我将命令中的引号指定为"而不是",因为这些命令最初是在Ant (xml)中指定的。
https://stackoverflow.com/questions/36449276
复制相似问题