Anm*_*pta 5 java eclipse artifactory maven transitive-dependency
我有两个项目-A和B,其中A依赖于B。我将B打包为jar并将其部署在maven服务器(人工工厂)上,然后将该jar作为对项目A的普通依赖项包含在pom文件中。B的jar文件显示在项目A的Maven依赖项中,但项目B的依赖项未显示在依赖项层次结构中。这导致B的依赖项的类未找到异常。
但是,我的项目A和B在同一个Eclipse工作区中。当我打开项目B时,项目A开始从工作空间而不是远程存储库中引用项目B,并且一切正常。
这个问题-Maven。传递依存关系最接近我的问题,但是项目B的依存关系不是可选的。
怎么了
项目B的POM
<?xml version="1.0" encoding="UTF-8"?>
<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.myapp</groupId>
<artifactId>utils</artifactId>
<version>1.0.0-RELEASE</version>
<packaging>jar</packaging>
<name>utils</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- Following doesn't get added to project A -->
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
项目A的POM
<?xml version="1.0" encoding="UTF-8"?>
<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.myapp</groupId>
<artifactId>core-app</artifactId>
<version>1.0.0-RELEASE</version>
<packaging>jar</packaging>
<name>core-app</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>com.myapp</groupId>
<artifactId>utils</artifactId>
<version>1.0.0-RELEASE</version>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
我正在使用Maven快速入门原型。我的项目的项目结构为(我打包为jar):
project-name
src/main/java
src/test/java
pom.xml
Run Code Online (Sandbox Code Playgroud)
要成功解决传递依赖项,项目 B 的 jar 和 pom.xml 必须可在 Maven 存储库中访问。将工件部署到远程存储库时,请确保 jar 和 pom.xml 都已部署并可供下载。
将必备文件部署到远程仓库后,使用命令行构建项目A。指定一个构建Maven目标来触发将所有依赖项下载到本地Maven仓库中。类似mvn compile或mvn package将触发下载并成功构建项目 A 的东西。
有一次,项目B的jar和pom.xml都在本地的Maven仓库中,在Eclipse中更新Maven项目,它们会正确地重建和解析依赖关系。
| 归档时间: |
|
| 查看次数: |
4090 次 |
| 最近记录: |