我有两个项目。 ABC和XYZ。 我需要的是在XYZ中获取ABC类
。为此,我已经将ABC的依赖性添加到XYZ中并在eclipse中执行了mvn clean。有效!
但是当我做了mvn clean install时它正在显示
Failed to execute goal on project XYZ: Could not resolve dependencies
Failure to find ABC-SERVER:ABC:jar:Server in https://repo.maven.apache.org/maven2 was cached in the local repository.
这是我的pom ABC的pom.xml:
<groupId>abc-server</groupId>
<artifactId>ABCServer</artifactId>
<name>ABCServer</name>
<version>Server</version>
<packaging>war</packaging>
XYZ的pom.xml:
<dependency>
<groupId>abc-server</groupId>
<artifactId>ABCServer</artifactId>
<version>Server</version>
</dependency>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
</plugins>
这样做的方法是什么。我需要从windows命令行运行mvn clean包。
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
查看错误消息:
未能找到ABC-SERVER:ABC: jar :服务器
显然,它永远不会找到那种依赖,因为不存在这样的工件。你的ABC-SERVER打包成战争。
您可以通过将<type>war</type>
添加到XYZ中的依赖项来使其正确解析依赖关系,但如果XYZ也是战争,则可能不是您想要的。 Maven将在XYZ战争中覆盖 ABC-SERVER战争(详见https://maven.apache.org/plugins/maven-war-plugin/overlays.html)。
如果您只想重用ABC-SERVER webapp中的类,我认为正确的方法是将类分成新的jar工件并在两个webapps中使用它。
答案 1 :(得分:0)
您必须将ABCServer工件部署到远程存储库。
ABCServer存储库中的mvn deploy
应该可以解决问题
答案 2 :(得分:0)
问题在于您将ABC项目打包为战争。你需要把包装改成罐子..
因此,将<packaging>war</packaging>
更改为<packaging>jar</packaging>