Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
如何正确导入我修改过的Maven依赖项并将其重新构建到现有项目中?_Maven_Jar_Log4j2_Pulsar - Fatal编程技术网

如何正确导入我修改过的Maven依赖项并将其重新构建到现有项目中?

如何正确导入我修改过的Maven依赖项并将其重新构建到现有项目中?,maven,jar,log4j2,pulsar,Maven,Jar,Log4j2,Pulsar,我有一个Maven依赖项,我分叉并更改了源代码,因为它在我的项目中引发了异常 更改源代码后,我运行mavenpackage命令来构建jar并将其导入到我的项目中(在Intellij中:project Structure | Modules | Dependencies | Add jar或directory…) 但是,当我运行应用程序时,它似乎无法找到该依赖项,因为我在log4j2.xml文件中声明的Pulsar appender没有配置 我是否正确导入了罐子?我想知道JAR是否需要在org.a

我有一个Maven依赖项,我分叉并更改了源代码,因为它在我的项目中引发了异常

更改源代码后,我运行maven
package
命令来构建jar并将其导入到我的项目中(在Intellij中:
project Structure | Modules | Dependencies | Add jar或directory…

但是,当我运行应用程序时,它似乎无法找到该依赖项,因为我在log4j2.xml文件中声明的Pulsar appender没有配置

我是否正确导入了罐子?我想知道JAR是否需要在
org.apache.pulsar
名称空间中才能正确导入

比如说,

这就是依赖项未改变的样子:

这就是我自己修改和构建它时的样子:


如果修改开源项目中的代码,则应同时更改groupId和工件id。如果不更改,则会出现问题,未来的开发人员会以您不愿意听到的方式说出您的名字

更改这些是必要的,以便Maven知道使用您的版本而不是公开可用的版本。此外,当人们查看您的项目并看到“真实”项目中的groupId和artifactId时,他们自然会认为这就是正在使用的(这就是为什么如果不是这样,他们会诅咒您)。此外,为了让Maven可靠地使用依赖关系,您必须做一些复杂的事情

我遵循的做法是在groupId前面加上“com.mycorp”,其中mycorp是我雇主的名字,并将mycorp添加到artifactId中。唯一的缺点是,您必须确保“真实”工件的坐标不作为依赖项或可传递依赖项引用,否则在类路径上会有重复的类

最后,您的最佳选择是使用您的修复程序为ApachePulsar创建一个pull请求,以便其他遇到与您相同问题的人从中受益