当前位置: 首页 > wzjs >正文

2022年热点新闻事件网络优化师

2022年热点新闻事件,网络优化师,网站建设 尚瑞科技,wordpress分类门户主题文章目录 将普通Eclipse项目改造为Maven项目(非SpringBoot项目)Maven安装与配置项目结构改造父子Pom.xml文件配置(继承与集成)父项目下的pom.xml文件配置普通子模块下的pom.xml配置启动模块的pom.xml配置 多模块编译总结 Maven插件…

文章目录

  • 将普通Eclipse项目改造为Maven项目(非SpringBoot项目)
    • Maven安装与配置
    • 项目结构改造
    • 父子Pom.xml文件配置(继承与集成)
      • 父项目下的pom.xml文件配置
      • 普通子模块下的pom.xml配置
      • 启动模块的pom.xml配置
    • 多模块编译
    • 总结
  • Maven插件配置
    • 一、maven-compiler-plugin
      • 功能
      • 常用参数
      • 配置示例
      • 注意事项
    • 二、maven-jar-plugin
      • 功能
      • 常用参数
      • 配置示例
      • 注意事项
    • 三、maven-dependency-plugin
      • 功能
      • 常用参数
      • 配置示例
      • 注意事项
    • 四、maven-resources-plugin
      • 功能
      • 常用参数
      • 配置示例
      • 注意事项
    • 五、maven-shade-plugin
      • 功能
      • 常用参数
      • 配置示例
      • 注意事项
    • 六、maven-assembly-plugin
      • 功能
      • 常用参数
      • 配置示例
      • 自定义`assembly.xml`示例
      • 注意事项
    • 总结

将普通Eclipse项目改造为Maven项目(非SpringBoot项目)

Maven安装与配置

网上资料很多,可自行搜索,不再赘述。

项目结构改造

需要将普通Eclipse项目结构改造为Maven标准结构,如下

src/
|--main/|--java/|--resources/

多模块项目结构

Demo/
|--module1/|--java/|--resources/|--pom.xml
|--module2/|--java/|--resources/|--pom.xml
|--module3/|--java/|--resources/|--pom.xml
|--pom.xml

父子Pom.xml文件配置(继承与集成)

父项目下的pom.xml文件配置

注意事项:

  1. 为了方便管理子模块的依赖,防止出现依赖冲突,在这里配置好所有模块的依赖项,后面等所有模块配置好后会一起下载依赖项
  2. 按子模块间的依赖顺序集成子模块,作为后续构建jar包的打包顺序
  3. 可配置下载依赖的Maven仓库地址
<?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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- GAV坐标 --><groupId>com.regan</groupId> 	<!-- 公司或组织ID --><artifactId>Demo</artifactId> 	<!-- 项目模块ID --><version>1.0.0</version> 		<!-- 版本号 --><packaging>pom</packaging>      <!-- 打包形式,pom工程 --><name>Demo</name>  			<!-- 项目名称 --><description>Demo</description><!-- 项目描述 --><!-- 自定义属性 --><properties><!-- 应用版本号 --><demo.version>1.0.0</demo.version><!-- 编译版本 --><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><!-- 编码格式 --><project.build.sourceEncoding>GBK</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><!-- Java版本 --><java.version>1.8</java.version><!-- 第三方库版本 --><dom4j.version>2.1.3</dom4j.version><fastjson2.version>2.0.53</fastjson2.version><gson.version>2.8.9</gson.version><log4j-core.version>1.2.17</log4j-core.version><junit.version>5.9.2</junit.version><!-- 外部资源路径 --><external-resources-path>${project.basedir}/../..</external-resources-path><!-- maven插件 --><maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version><maven-jar-plugin.version>3.3.0</maven-jar-plugin.version><maven-shade-plugin.version>3.2.4</maven-shade-plugin.version><maven-dependency-plugin.version>3.6.0</maven-dependency-plugin.version><maven-resources-plugin.version>3.3.1</maven-resources-plugin.version></properties><!-- 依赖项管理 --><dependencyManagement><dependencies><!-- xml解析 --><dependency><groupId>org.dom4j</groupId><artifactId>dom4j</artifactId><version>${dom4j.version}</version></dependency><!-- 阿里json解析器 --><dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>${fastjson2.version}</version></dependency><!-- json-java object 转换 --><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>${gson.version}</version></dependency><!-- 日志记录工具 --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j</artifactId><version>${log4j-core.version}</version></dependency><!-- 编写测试的API --><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>${junit.version}</version><scope>test</scope></dependency><!-- 基础模块 --><dependency><groupId>com.regan</groupId><artifactId>module1</artifactId><version>${demo.version}</version></dependency><!-- 基础工具模块 --><dependency><groupId>com.regan</groupId><artifactId>module2</artifactId><version>${demo.version}</version></dependency><!-- 核心模块 --><dependency><groupId>com.regan</groupId><artifactId>module3</artifactId><version>${demo.version}</version></dependency><!-- 启动模块 --><dependency><groupId>com.regan</groupId><artifactId>demo</artifactId><version>${demo.version}</version></dependency></dependencies></dependencyManagement><!-- 子模块,根据依赖顺序排序 --><modules><module>module1</module><module>module2</module><module>module3</module><module>demo</module></modules><!-- 统一管理插件版本 --><build><!-- 打包后的Jar包名称 --><finalName>Demo-${project.artifactId}-${demo.version}</finalName><pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>${maven-compiler-plugin.version}</version><configuration><source>${java.version}</source><target>${java.version}</target><encoding>${project.build.sourceEncoding}</encoding></configuration></plugin></plugins></pluginManagement></build><!-- 仓库 --><repositories><repository><id>public</id><name>aliyun nexus</name><url>https://maven.aliyun.com/repository/public</url><releases><enabled>true</enabled></releases></repository></repositories><!-- 插件仓库 --><pluginRepositories><pluginRepository><id>public</id><name>aliyun nexus</name><url>https://maven.aliyun.com/repository/public</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></pluginRepository></pluginRepositories>
</project>

普通子模块下的pom.xml配置

注意事项

  1. 注意要继承parent
  2. 依赖的其它模块也要写上
<?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/xsd/maven-4.0.0.xsd"><!-- 继承父级 --><parent><groupId>com.regan</groupId><artifactId>Demo</artifactId><version>1.0.0</version></parent><modelVersion>4.0.0</modelVersion><packaging>jar</packaging>  <!-- 子模块打包成Jar包 --><artifactId>module2</artifactId><description>基础模块</description><dependencies><dependency><groupId>org.dom4j</groupId><artifactId>dom4j</artifactId></dependency><!-- 依赖的其它模块 --><dependency><groupId>com.regan</groupId><artifactId>module1</artifactId></dependency></dependencies>
</project>

启动模块的pom.xml配置

注意事项

  1. 启动模块需要配置程序入口

  2. 在这里进行打包配置(依赖、资源文件)

  3. 如果所依赖的资源路径在项目执行路径之外(${project.basedir}),就需要在打包配置时使用

    ${project.basedir}/..–相当于执行路径下的上一级目录

    <resources><resource><directory>你的资源路径</directory></resource>
    </resources>
    
<?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/xsd/maven-4.0.0.xsd"><parent><groupId>com.regan</groupId><artifactId>Demo</artifactId><version>1.0.0</version></parent><modelVersion>4.0.0</modelVersion><packaging>jar</packaging><artifactId>module3</artifactId><properties><external-resources-path>${project.basedir}/../..</external-resources-path></properties><description>启动模块</description><dependencies><!-- xml解析 --><dependency><groupId>org.dom4j</groupId><artifactId>dom4j</artifactId><version>${dom4j.version}</version><scope>system</scope><systemPath>${external-resources-path}/safri_build/dom4j-2.1.1.jar</systemPath></dependency><!-- 日志记录工具 --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j</artifactId><version>${log4j-core.version}</version><scope>system</scope><systemPath>${external-resources-path}/safri_build/log4j-1.2.17.jar</systemPath></dependency><!-- json库 --><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>${json.version}</version><scope>system</scope><systemPath>${external-resources-path}/safri_build/json.jar</systemPath></dependency><!-- 语法高亮文本编辑器 --><dependency><groupId>com.fifesoft</groupId><artifactId>rsyntaxtextarea</artifactId><version>${rsyntaxtextarea.version}</version><scope>system</scope><systemPath>${external-resources-path}/safri_build/rsyntaxtextarea-3.5.3.jar</systemPath></dependency><!-- 阿里json解析器 --><dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>${fastjson2.version}</version><scope>system</scope><systemPath>${external-resources-path}/safri_build/fastjson2-2.0.53.jar</systemPath></dependency><dependency><groupId>com.regan</groupId><artifactId>module1</artifactId></dependency><dependency><groupId>com.regan</groupId><artifactId>module2</artifactId></dependency></dependencies><!-- 配置可执行Jar --><build><!-- 可选:配置从指定目录下开始编译,不拘泥于Maven结构-- <sourceDirectory>src</sourceDirectory> --><plugins><!-- 1. 生成主JAR(不含依赖) --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>${maven-jar-plugin.version}</version><configuration><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix><mainClass>cnpo.Demo.app.ApplicationEntrance</mainClass></manifest></archive></configuration></plugin><!-- 2. 复制所有依赖到target/lib --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>${maven-dependency-plugin.version}</version><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib</outputDirectory><excludeTransitive>false</excludeTransitive><stripVersion>false</stripVersion><overWriteReleases>false</overWriteReleases><overWriteSnapshots>false</overWriteSnapshots><includeScope>runtime</includeScope><includeScope>system</includeScope></configuration></execution></executions></plugin><!-- 3. 处理资源文件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>${maven-resources-plugin.version}</version><executions><execution><id>copy-resources</id><phase>process-resources</phase><goals><goal>copy-resources</goal></goals><configuration><outputDirectory>${project.build.directory}</outputDirectory><resources><!-- 资源1 目录 --><resource><directory>${external-resources-path}/images</directory><excludes><exclude>**/*.webg</exclude></excludes><targetPath>images</targetPath></resource><!-- config 目录 --><resource><directory>${external-resources-path}/config</directory><includes><include>**/*.*</include></includes><targetPath>config</targetPath></resource><!-- 单个文件 --><resource><directory>${external-resources-path}/</directory> <!-- 指向父目录 --><includes><include>*.properties</include><include>admin.txt</include></includes></resource></resources></configuration></execution></executions></plugin></plugins></build>
</project>

多模块编译

进行多模块编译主要就是需要在父类pom.xml文件中配置好modules,各子模块的pom.xml文件中配置好依赖模块和依赖包,最后在启动模块下进行Maven插件的配置。可参考上述pom.xml配置文件。

还需要注意的一点是依赖配置:

  • 若使用 <systemPath>,需在所有依赖模块中显式重复配置该依赖。
<scope>system</scope>
<systemPath>依赖包路径</systemPath>

注意:这种依赖作用域默认没有依赖传递。

总结

Maven多模块项目主要就是注意父类Pom.xml文件与子模块Pom.xml文件的模块包含关系,以及依赖配置。

Maven插件配置

以下是对Maven核心插件的详细介绍,涵盖参数配置、使用场景及注意事项:


一、maven-compiler-plugin

功能

负责Java源代码的编译,控制编译版本、编码、内存分配等。

常用参数

  1. <source>:指定源代码兼容的Java版本(如1.8)。
  2. <target>:指定生成的字节码目标JVM版本。
  3. <encoding>:设置字符编码(默认UTF-8)。
  4. <fork>:是否启用独立进程编译(默认false)。
  5. <compilerArgs>:传递额外编译器参数(如-Xlint:unchecked)。
  6. <showWarnings>:是否显示编译警告(默认false)。
  7. <release>:兼容特定JDK版本(仅JDK9+支持)。

配置示例

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding><compilerArgs><arg>-Xlint:all</arg></compilerArgs></configuration>
</plugin>

注意事项

  • 版本兼容性<release>参数仅JDK9+支持,低版本需用<source>/<target>
  • 目标JVM限制:即使设置<target>为低版本,仍需避免使用高版本API,建议配合bootclasspath或Animal Sniffer插件验证。

二、maven-jar-plugin

功能

生成标准JAR包,配置清单文件(MANIFEST.MF)。

常用参数

  1. <archive>:配置JAR包元数据。
    • <manifest>:定义主类、类路径等。
  • <mainClass>:指定入口类。
  • <addClasspath>:是否添加类路径(默认false)。
  • <classpathPrefix>:类路径前缀(如lib/)。
  1. <excludes>/<includes>:排除或包含特定文件。

配置示例

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.3.0</version><configuration><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix><mainClass>com.example.Main</mainClass></manifest></archive><excludes><exclude>**/test/**</exclude></excludes></configuration>
</plugin>

注意事项

  • 依赖管理:不会打包依赖库,需配合maven-dependency-plugin复制依赖到类路径目录。
  • 版本冲突:若配置不生效,检查插件版本与Maven/JDK兼容性。

三、maven-dependency-plugin

功能

管理项目依赖,如复制依赖、生成依赖树。

常用参数

  1. <copy-dependencies>目标
    • <outputDirectory>:依赖复制目标目录(如target/lib)。
    • <excludeTransitive>:是否排除传递依赖(默认false)。
    • <stripVersion>:移除依赖版本号(默认false)。
  2. <dependency:tree>:生成依赖树分析。

配置示例

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>3.6.0</version><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib</outputDirectory><stripVersion>true</stripVersion></configuration></execution></executions>
</plugin>

注意事项

  • 参数兼容性:避免使用旧版本参数(如overwrite),推荐使用<overWriteIfNewer>
  • 依赖范围:通过<includeScope>控制复制范围(如runtime)。

四、maven-resources-plugin

功能

处理资源文件,支持过滤、编码、动态替换占位符。

常用参数

  1. <encoding>:资源文件编码(默认${project.build.sourceEncoding})。
  2. <resources>:定义资源目录及过滤规则。
    • <filtering>:是否启用占位符替换(默认false)。
  3. <excludes>/<includes>:排除或包含特定资源文件。
  4. <escapeString>:转义占位符前缀(如\${}避免替换)。

配置示例

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.3.0</version><configuration><encoding>UTF-8</encoding><resources><resource><directory>src/main/resources</directory><filtering>true</filtering><excludes><exclude>**/*.key</exclude></excludes></resource></resources></configuration>
</plugin>

注意事项

  • 二进制文件过滤:通过<nonFilteredFileExtensions>排除二进制文件(如PNG)。
  • 目录覆盖:默认包含src/main/resources,自定义资源目录需显式声明。

五、maven-shade-plugin

功能

生成包含依赖的“胖JAR”(Uber-JAR),解决依赖冲突。

常用参数

  1. <transformers>:合并资源文件(如ManifestResourceTransformer)。
    • <mainClass>:指定入口类。
  2. <filters>:排除签名文件(如META-INF/*.SF)。
  3. <relocations>:重定位类路径以避免冲突(如com.google.guavashaded.com.google.guava)。
  4. <createDependencyReducedPom>:是否生成精简POM(默认true)。

配置示例

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.5.0</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>com.example.Main</mainClass></transformer></transformers><filters><filter><artifact>*:*</artifact><excludes><exclude>META-INF/*.SF</exclude></excludes></filter></filters></configuration></execution></executions>
</plugin>

注意事项

  • 资源冲突:多个依赖包含同名资源时需手动合并(如AppendingTransformer)。
  • 体积控制:通过<minimizeJar>移除未使用的类,但可能破坏反射。

六、maven-assembly-plugin

功能

生成自定义分发包(如ZIP/TAR),包含脚本、配置文件等。

常用参数

  1. <descriptorRefs>:使用预定义描述符(如jar-with-dependencies)。
  2. <descriptors>:引用自定义assembly.xml文件。
  3. <archive>:配置清单文件(如Main-Class)。
  4. <formats>:指定打包格式(如zip、tar.gz)。

配置示例

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.6.0</version><configuration><descriptors><descriptor>src/main/assembly/custom.xml</descriptor></descriptors></configuration><executions><execution><phase>package</phase><goals><goal>single</goal></goals></execution></executions>
</plugin>

自定义assembly.xml示例

<assembly><id>full-distribution</id><formats><format>zip</format></formats><fileSets><fileSet><directory>target</directory><outputDirectory>/</outputDirectory><includes><include>*.jar</include></includes></fileSet><fileSet><directory>src/main/scripts</directory><outputDirectory>/bin</outputDirectory></fileSet></fileSets>
</assembly>

注意事项

  • 路径控制<includeBaseDirectory>决定是否将文件放入顶级目录。
  • 依赖管理:通过<dependencySets>控制依赖的打包方式(如解压或直接复制)。

总结

插件核心用途典型场景
maven-compiler-plugin控制编译过程多版本JDK兼容、编码调整
maven-jar-plugin生成标准JAR包可执行JAR、类路径配置
maven-dependency-plugin依赖管理依赖复制、依赖树分析
maven-resources-plugin资源文件处理配置文件过滤、编码统一
maven-shade-plugin生成胖JAR微服务部署、依赖冲突解决
maven-assembly-plugin定制化打包分发包含脚本/配置的完整发布包

通过合理配置这些插件,可实现从编译到分发的全流程控制,满足复杂项目需求。

http://www.dtcms.com/wzjs/234423.html

相关文章:

  • 用asp.net做购物网站商品标题seo是什么意思
  • 怎样创建网站根目录购物网站网页设计
  • 平原网站建设公司旺道seo
  • 分类网站模版利用搜索引擎营销成功的案例
  • 北京品牌网站建设公司百度推广外推联系方式
  • dedecms本地打开网站郑州seo公司
  • 广东微信网站建设哪家专业品牌宣传策划公司
  • 格力网站建设首页网络推广怎么找客户
  • 电商后台管理网站模板郑州网络营销公司排名
  • 新材建设局网站郑州官网网络营销外包
  • 想做一个网站怎么做百度有什么办法刷排名
  • 手机动态网站开发四川二级站seo整站优化排名
  • 做英文网站要做适合已经的阿里云空间+1对1私人专属设计师
  • 做网站需要数据库吗广告关键词排名
  • 夺宝网站开发百度 营销推广多少钱
  • 做网站应该画什么图上海优化seo排名
  • 煤炭建设行业协会网站关键词难易度分析
  • 十堰今天刚刚发生新闻郑州seo公司排名
  • 做基础网站主机要网页推广方案
  • 网站维护难做推广app赚佣金平台
  • 榆林华科网站建设怎么建个网站
  • 做网站要懂什么编程长沙百度推广公司电话
  • seo推广一年要多少钱外贸网站seo教程
  • 网站建设有名的公司网站怎么做
  • 做质粒图谱的网站口碑营销ppt
  • 千库网ppt模板关键词怎样做优化排名
  • Wordpress 充值 卡密免费seo网站的工具
  • 如何做直播类网站百度账号一键登录
  • 广东网站建设费用设计培训学院
  • 上海那家公司做响应式网站建设app推广注册招代理