项目结构
项目是使用maven进行jar包管理
- community(顶级)
- components(父模块)
- common(子模块,工具类等公共方法)
- configure(子模块,配置文件)
- es(子模块,es)
- influx(子模块,influx)
- io(子模块,io)
- logging(子模块,日志组件)
- notify(子模块,通知)
- core(模块,引入了常用的jar包)
- manager(父模块)
- authentication(子模块,权限认证功能)
- device(子模块,设备)
- gps(子模块,定位相关)
- logging(子模块,日志相关)
- statistic(子模块,统计相关)
- standalone(模块,包含springboot启动类)
- components(父模块)
尝试方法一
顶级模块原pom文件中的plugin
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.standalone.MyApplication</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven.deploy.version}</version>
</plugin>
</plugins>
</build>
替换为:
<properties>
<start-class>com.zhiyun.iov.standalone.IovApplication</start-class>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
</build>
替换之后,就可以进行打包,但是jar包无法运行
尝试方法二
将顶级原pom文件中的plugin去除,在包含项目启动类中的模块的添加该plugin。
打出的jar包可以正常运行。
注意
- 包含启动类的模块pom文件中需要引入所有项目的包(如果想使用influx,就需要引入influx模块。推荐引入所有项目包)
- community的pom文件仅用来版本管理,打包为pom
<packaging>pom</packaging>
- 父模块应包含子模块
例:community
<modules> <module>core</module> <module>components</module> <module>manager</module> <module>standalone</module> </modules>