打包的插件有maven的jar,war(可执行),还有assembly插件(zip)
打包的插件有maven的jar,war(可执行),还有assembly插件(zip)
打包1,被依赖的模块会在父项目相应操作的时候也同时操作
一般父模块管理打包,触发子模块打包
开源项目一般会有两种打包方式
1,普通的jar,war启动工程的打包方式---直接用jar,war
配置文件中要引用的内容可以不再 pom配置的jar包打包的内容,只要按配置的全路径能找到即可-----
2,对于不是传统的web项目,前台页面会稍微离散一点,只要后端配置中有对应的路径引用到即可,所以会出现,在后端
服务jar没有内容在jar外的内容也可用----一般在jar外的内容是一些静态,资源文件
3,上诉1,2两种特征的项目一般是会前后分离,
有出现后端服务jar不能把所有需要的资源打入的情况(又暂时不做前后分离),为了方便会在用一个包中都能找到可用assembly插件再打成一个zip即可,
用的时候解压,启动其中的jar,自动依照里面的路径用到了jar外面的静态文件
参考:davinci的打包方式
前端资源不在后端服务jar中的,情况下组合这种打包方式:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>dist</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
后端服务打包方式;
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<classesDirectory>target/classes/</classesDirectory>
<archive>
<manifest>
<mainClass>edp.DavinciServerApplication</mainClass>
<!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 -->
<useUniqueVersions>false</useUniqueVersions>
<addClasspath>false</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
上一篇: Java中子类是否会继承父类中的private成员
下一篇: 控制组剖析——文件系统的观点