java工程很多模块maven怎么构建

如题所述

使用OSGI框架吧, 具体可百度,

大概构成是一个主项目里面有多个子模块,这些模块可以当作一个项目,但是相互之间是用pom.xml文件强制依赖构建的

主POM示例:

<project xmlns="

xsi:schemaLocation="

<modelVersion>4.0.0</modelVersion>
<groupId>org.test</groupId>
<artifactId>java-demo</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>test</name>
<modules>
<module>test-one</module>
<module>test-two</module>
</modules>
<properties>
<project.version>0.0.1-SNAPSHOT</project.version>
<java.version>1.8</java.version>
</properties>
<dependencies> <!--主项目用依赖-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<dependencyManagement><!--子模块依赖管理   要选择在这里加了管理版本,子模块才能使用-->
<dependencies>
<dependency>  <!-- 子模块申明 -->
<groupId>org.test</groupId>
<artifactId>test-one</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.test</groupId>
<artifactId>test-two</artifactId>
<version>${project.version}</version>
</dependency>
<!-- datasource  其他依赖 -->  
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.11</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>

模块1 pom:

<project xmlns="

xsi:schemaLocation="

<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.test</groupId>
<artifactId>java-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>test-one</artifactId>
<dependencies>
<dependency> <!--这里的依赖要在主pom里管理,这里不用指定版本 -->
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
</dependencies>
</project>

模块2 pom:

<project xmlns="

xsi:schemaLocation="

<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.test</groupId>
<artifactId>java-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>test-two</artifactId>
<dependencies>
<dependency> <!--这里是依赖 其他模块-->
<groupId>org.test</groupId>
<artifactId>test-one</artifactId>
</dependency>
<dependency> <!--这里的依赖要在主pom里管理,这里不用指定版本 -->
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
</dependencies>
</project>

大概写了下, 希望对你有帮助

文件目录是这样的

温馨提示:答案为网友推荐,仅供参考
相似回答