Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将本地Maven包jar文件添加到Maven项目 总结_Java_Maven - Fatal编程技术网

Java 如何将本地Maven包jar文件添加到Maven项目 总结

Java 如何将本地Maven包jar文件添加到Maven项目 总结,java,maven,Java,Maven,当使用maven install plugin:install file安装maven jar包时,所有依赖项都被忽略,该插件会编写一个哑/坏的pom文件 上下文 我有一个本地Maven包jar文件foo-java-1.2.3.jar,它在META-INF/Maven/org.mizux.foo/foo-java/pom.xml中包含自己的pom.xml,几乎没有依赖项 org.mizux.foo 注意:net.java.dev.jna:jna平台和com.google.protobuf:p

当使用
maven install plugin:install file
安装maven jar包时,所有依赖项都被忽略,该插件会编写一个哑/坏的pom文件

上下文 我有一个本地Maven包jar文件
foo-java-1.2.3.jar
,它在
META-INF/Maven/org.mizux.foo/foo-java/pom.xml
中包含自己的pom.xml,几乎没有依赖项


org.mizux.foo

注意:
net.java.dev.jna:jna平台
com.google.protobuf:protobufjava
可以在maven central上找到

然后在
栏中使用它时
项目
pom.xml

。。。
org.mizux.foo

您可以查看操作以查看linux/macos/windows上的完整日志和docker ubuntu容器,因为您期望的功能不起作用:

或者使用插件的最新版本(3.0.0-M1)来查看这是否已修复

或者在debug中运行maven(
mvnDebug-X
),并在下面的行中放置一个断点;重要的是,您的JAR文件可能已损坏

  • 由于您必须在IDE中进行调试,因此您可能还需要克隆GIT存储库并切换到标记,以匹配所使用插件的版本

手动提取pom并将其传递。

因为您期望的功能不起作用:

或者使用插件的最新版本(3.0.0-M1)来查看这是否已修复

或者在debug中运行maven(
mvnDebug-X
),并在下面的行中放置一个断点;重要的是,您的JAR文件可能已损坏

  • 由于您必须在IDE中进行调试,因此您可能还需要克隆GIT存储库并切换到标记,以匹配所使用插件的版本
手动提取pom并将其传递

为什么install plugin在jar工件中存在完整的pom时生成这个虚拟pom

根据文件

如果通过参数pomFile未提供POM,则为工件生成最小POM。如果本地存储库中还没有现有POM,则默认为true

参考:

现在我不知道我们是否可以强制maven安装插件复制jar文件本身中的pom.xml(插件已经解析过的ed!!!)

难看的变通办法 我可以从.jar文件(其中包含它!)中提取pom.xml,然后在install file命令中将其传递给jar

unzip-jfoo-java-1.2.3.jar META-INF/maven/org.mizux.foo/foo-java/pom.xml
插件:maven安装插件:2.5.2:安装文件\
-Dfile=foo-java-1.2.3.jar-DpomFile=pom.xml
编译
mvn exec:java-Dexec.mainClass=“org.mizux.bar.bar”
为什么install plugin在jar工件中存在完整的pom时生成这个虚拟pom

根据文件

如果通过参数pomFile未提供POM,则为工件生成最小POM。如果本地存储库中还没有现有POM,则默认为true

参考:

现在我不知道我们是否可以强制maven安装插件复制jar文件本身中的pom.xml(插件已经解析过的ed!!!)

难看的变通办法 我可以从.jar文件(其中包含它!)中提取pom.xml,然后在install file命令中将其传递给jar

unzip-jfoo-java-1.2.3.jar META-INF/maven/org.mizux.foo/foo-java/pom.xml
插件:maven安装插件:2.5.2:安装文件\
-Dfile=foo-java-1.2.3.jar-DpomFile=pom.xml
编译
mvn exec:java-Dexec.mainClass=“org.mizux.bar.bar”

可能重复的:@huch-well我没有指定
GeneratePom=True
,但默认情况下可能是真的,谢谢我会挖掘它。您可以添加
install:install文件的输出吗?可能重复的:@huch-well我没有指定
GeneratePom=True
,但默认情况下可能是真的,谢谢我会挖掘它你能添加
install:install文件的输出吗?不,所有这些信息都被提取到jar本身参见第三个cmd,问题是maven安装插件只提取这些内容并丢弃所有其他内容,我想要的是插件也逐字复制pom.xml,如果这不起作用,你没有太多的选择:你必须分析失败的原因。不,所有这些信息都被提取到jar本身。见第三个cmd,问题是maven安装插件只提取这些内容并丢弃所有其他内容,我想要的是插件也逐字复制pom.xml,如果这不起作用,你没有太多的选择:你必须分析这个失败的原因。虽然这个链接可以回答这个问题,但最好在这里包括答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效-