如何将maven项目创建为与其他没有依赖关系的项目相关的jar

如何将maven项目创建为与其他没有依赖关系的项目相关的jar,maven,jar,dependencies,project,Maven,Jar,Dependencies,Project,我有一个名为“a”的java项目,它有一些以spring aop方式实现的自定义注释,并使用maven jar插件打包为jar,该插件只包含特定于项目的类,没有任何依赖项。现在,我使用install命令(mvn install:instlal file)将其安装在本地maven存储库中并在另一个名为“B”的maven项目中将其用作依赖项 我可以在项目“B”中获得这些注释,但我无法从依赖jar(项目“A”)中的pom文件中自动获得依赖项。因此,构建项目“B”失败 问题1:我们是否应该将用于项目“A

我有一个名为“a”的java项目,它有一些以spring aop方式实现的自定义注释,并使用maven jar插件打包为jar,该插件只包含特定于项目的类,没有任何依赖项。现在,我使用install命令(mvn install:instlal file)将其安装在本地maven存储库中并在另一个名为“B”的maven项目中将其用作依赖项

我可以在项目“B”中获得这些注释,但我无法从依赖jar(项目“A”)中的pom文件中自动获得依赖项。因此,构建项目“B”失败

问题1:我们是否应该将用于项目“A”的所有依赖项也放在项目“B”pom中? 问题2:或者它可以从依赖jar pom文件自动下载? 注意:我对脂肪罐不感兴趣?但是,如果我们在项目“B”中提到所有依赖项,它就可以正常工作。当我们自动构建项目“B”时,有没有办法获得所有依赖项


请在这方面帮助我。

我猜您的错误是使用了
mvn安装:安装文件。如果不将POM添加为参数,则会为您创建一个(几乎)空POM

正确的方法:

  • 转到project A并运行
    mvn clean install

  • 然后在B中使用A,并享受完整的传递依赖解析


因此,总而言之,Q1的答案是“否”,Q2的答案是“是的,使用
mvn clean install
而不是
mvn install:install file

谢谢您的回复……但我使用的是mvn install:install file-Dfile=-DgroupId=-DartifactId=-Dversion=0.0.1-SNAPSHOT-Dpackaging=jar-DgeneratePom=true)是将生成的jar安装到本地reposiroty(.m2目录)。我使用mvn clean install构建项目,然后只生成jar文件(仅包含项目“A”中专门使用的类,不包含任何依赖项)。此生成的jar(项目“A”)在jar文件的meta inf目录中有pom,所以此pom中的依赖项将自动下载到项目“B”中“org.apache.maven.plugins maven jar plugin 3.1.2 main class true No.正如我所说:如果您使用
install:install file
generatePom=true
一起使用,您将失去该jar的所有依赖关系。罐子里的POM不重要,它们被忽略了。对于您自己的项目,请始终使用
clean install
,切勿使用
install:install file
。是的。在将项目“A”依赖项放置到项目“B”pom.xml中之后,我为项目“B”执行了(mvn clean install)。事件获取classnotfoundexception,我正在尝试使用jar中的类。