您是否阅读过任何有关Maven的文档?如果您有使用 Maven 定义的项目,那么您无需执行任何特殊操作即可使依赖项正常工作。
根据您的需要,您有两种选择:创建两个单独的项目,其中一个依赖于另一个,或者您可以创建一个多模块项目,其中一个模块仍然依赖于另一个。
两个独立的项目
.
|-- A
| `-- pom.xml
| `-- src
| `-- main
| `-- java
`-- B
`-- pom.xml
`-- src
`-- main
`-- java
A/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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company</groupId>
<artifactId>A</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
B/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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company</groupId>
<artifactId>B</artifactId>
<version>2.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.company</groupId>
<artifactId>A</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
而已!您依赖于 B 中的项目/模块 A。
mvn install
您首先通过发布(并在目录 A 中)来构建项目 A。该工件将安装在您的本地存储库中(并可用于其他项目)。
然后你通过发布mvn install
(并在目录 B 中)来构建项目 B。该工件将安装在您的本地存储库中。
一个带有子模块的父项目
.
|-- A
| `-- pom.xml
| `-- src
| `-- main
| `-- java
`-- B
| `-- pom.xml
| `-- src
| `-- main
| `-- java
`-- pom.xml
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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>A</module>
<module>B</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.company</groupId>
<artifactId>A</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
<depencdencyManagement/>
可以帮助子模块选择正确的版本。
A/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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.company</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.company</groupId>
<artifactId>A</artifactId>
</project>
B/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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.company</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.company</groupId>
<artifactId>B</artifactId>
<dependencies>
<dependency>
<groupId>com.company</groupId>
<artifactId>A</artifactId>
</dependency>
</dependencies>
</project>
使用此解决方案,您只需将自己定位在父文件夹中并运行mvn install
(或mvn package
类似)。您现在将以正确的顺序构建 A 和 B,并且整个项目可以导入到 Eclipse 中。