gpt4 book ai didi

java - maven看不到本地安装的jar

转载 作者:太空宇宙 更新时间:2023-11-04 10:50:52 26 4
gpt4 key购买 nike

我有一个框架的源代码,我们称之为my-framework。它提供了各种包,包括com.not_telling.framework.db

我有这个框架的 pom.xml 文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.not_telling</groupId>
<artifactId>my-famework</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>my-framework Maven Library</name>
<url>http://maven.apache.org</url>
<!-- more things here... -->
</project>

我可以使用以下命令编译它并将其安装到我的本地存储库缓存中:

mvn install

安装日志结束:

[INFO] Installing C:\Users\MyUserName\my-framework\backend\target\my-framework.jar to C:\Users\MyUserName\.m2\repository\com\not_telling\my-famework\0.0.1-SNAPSHOT\my-famework-0.0.1-SNAPSHOT.jar
[INFO] Installing C:\Users\MyUserName\my-framework\backend\pom.xml to C:\Users\MyUserName\.m2\repository\com\not_telling\my-famework\0.0.1-SNAPSHOT\my-famework-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

然后我有另一个项目,尝试使用它作为依赖项:

    <dependency>
<groupId>com.not_telling</groupId>
<artifactId>my-famework</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>

该项目的编译阶段失败并显示以下消息:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project my-project: Compilation failure: Compilation failure:
[ERROR] /C:/Users/MyUserName/workspace/my-project/backend/src/main/java/com/not_telling/some_example.java:[13,17] package com.not_telling.framework.db does not exist

这是为什么呢?也许是因为 jar 位于存储库缓存中,但不在本地存储库中?

此问题是 absolute maven pomderived entry added to classpath 的后续问题- 我意识到,我需要制作一个单独的模块,而不是使用相对源目录引用进行魔术,但我面临着这个问题。

最佳答案

多处伤口正在流血。这些需要修复:

  • 将框架和应用程序项目中的源文件从 src/下移动到 src/main/java 下
  • 更改组和 Artifact ID 以匹配包名称对于名为“com.not_telling.framework”的包,我必须使用 groupId=com.not_telling 和 name=framework。
  • 应用程序的 pom 文件中的依赖范围错误。我不得不删除测试

现在它可以从命令行运行,我可以为框架执行“mvn install”,然后为应用程序执行“mvn package”。

剩下的唯一问题是应用程序无法从 Eclipse 编译,我必须删除应用程序项目中到框架的所有链接源文件夹/构建路径。

关于java - maven看不到本地安装的jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47881074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com