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

网站开发转软件开发/网络营销推广的方式

网站开发转软件开发,网络营销推广的方式,安徽省建设工程资源网,wordpress优化插件1、聚合 一个带有模块的项目称为“多模块”或“聚合器”项目。模块是POM列出的项目&#xff0c;并作为一个组执行。一个pom打包的项目可以通过将它们作为模块来聚合一组项目的构建&#xff0c;这些模块是这些项目的目录或pom文件的相对路径。 <project xmlns"http://m…

1、聚合

  一个带有模块的项目称为“多模块”或“聚合器”项目。模块是POM列出的项目,并作为一个组执行。一个pom打包的项目可以通过将它们作为模块来聚合一组项目的构建,这些模块是这些项目的目录或pom文件的相对路径。

<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.0https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.codehaus.mojo</groupId><artifactId>my-parent</artifactId><version>2.0</version><packaging>pom</packaging><modules><module>my-project</module><module>another-project</module><module>third-project/pom-example.xml</module></modules>
</project>

  在列出模块时,您不需要考虑模块间的依赖关系,也就是说,POM给出的模块的顺序并不重要。Maven将在拓扑上对模块进行排序,这样依赖项总是在依赖模块之前构建。

  继承和聚合创建了一个良好的动态,通过一个单一的高级POM来控制构建。你经常会看到既有继承又有聚合的项目。例如,整个maven核心都是通过一个基本的POM org.apache.maven:maven来运行的。因此构建maven项目可以由单个命令执行:mvn compile。然而,尽管就整个POM项目而言,一个聚合项目和一个继承项目是不一样的,不应该被混淆。一个POM项目可能来自于继承但不是必须的——它还可能是其它任何类型的聚合模块。相反,一个POM项目可能只涉及到聚合而不涉及到继承。

  下面我们举例来说明,之前的文章中,我们已经成功的创建了两个Maven项目,一个是my-app,另一个是maven-parent,这两个项目都是采用的继承的模式,现在我们可以用聚合的方式将其组合成一体,比如说将maven-parent聚合到my-app中,具体的做法是修改my-app中的父类pom.xml即可。

  my-app中的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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.mycompany.app</groupId><artifactId>my-app</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><modules><module>myapp1</module><module>myapp2</module><module>myapp3</module><module>myapp4</module><module>myapp5</module><module>myapp6</module><module>my-app-site</module><module>my-webapp</module><module>maven-parent</module></modules><name>my-app</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies>
</project>

  通过这样的变化,它们就成功的聚合到了一起,通过在my-app中的pom.xml执行相应的构建,其所聚合的项目maven-parent也会被一起构建。

  详细的代码可以参考下面的链接:

  • Maven的聚合

2、继承

  在之前的文章中,我就已经多少谈到了Maven的继承,在这里我重点谈一下Maven的继承原则,在Maven中一共有两大继承原则。

其一是:短路优先原则

  我们假设有项目D,项目E,项目F三个项目,在项目D,和项目E中都存在一个类Say,它们的源码如下:

  项目D中的类Say:

package com.lyc;public class Say {public String say(){return "D";}
}

  项目E中的类Say:

package com.lyc;public class Say {public String say(){return "E";}
}

  在项目E中存在测试类SayTest,在项目F中也存在测试类SayTest,它们的源码都相同,都如下:

  项目E、F中的类SayTest

package com.lyc;import org.junit.Test;public class SayTest {@Testpublic void test(){Say say = new Say();System.out.println(say.say());}}

  由于我们知道,Maven允许继承,在这种情况下,F依赖了E,E又依赖了D,这样在运行F中的SayTest类时,我们根据最短路径原则不难知道,在F中运行的是输出项目E中的Say类,此时我们输出为E。

  当我们在运行项目E中的SayTest类时,其输出的也是E,这也同样不违反该定律,因为毕竟调用自身的Say,类要比调用依赖的Say类依赖路径更短。

  详细的源代码如下:

  • 继承-最短路径原则

其二是:谁先声明,先解析谁

  这个比较好理解,就是我们假设现在有三个项目,分别为项目H、项目I、项目J三个项目,现在在项目H,和项目I中都存在类Say,然后在项目J中存在测试类SayTest,下面是项目J中的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"><parent><artifactId>maven-parent3</artifactId><groupId>com.lyc</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>J</artifactId><packaging>jar</packaging><name>J</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>com.lyc</groupId><artifactId>H</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.lyc</groupId><artifactId>I</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
</project>

  在项目J中运行测试类SayTest,根据谁先声明,先解析谁的原理,由于项目H在项目J中优先声明,因而在项目J中调用SayTest时输出的内容为“H”。

  项目的详细源码如下:

  • 继承-谁先声明,先解析谁
http://www.lbrq.cn/news/1540153.html

相关文章:

  • 专业做刀具网站的公司/百度搜索简洁版网址
  • 伪静态网站配置/企业网站设计规范
  • 做网站一定要效果图吗/正安县网站seo优化排名
  • 网站编程基础/熊猫关键词挖掘工具
  • 网站编辑怎么做的/武汉全网营销推广公司
  • 发改委网站建设方案/seo结算系统
  • 张店网站制作设计公司/千锋教育培训多少钱
  • .net 响应式网站/爱站网关键词查询工具
  • 做vlog网站推荐/论坛推广平台有哪些
  • 河南民基建设工程有限公司网站/解析域名网站
  • 做文字云的网站/如何做网络宣传推广
  • 做旅游网站有前途吗/泰安优化关键词排名哪家合适
  • 欧美网站建设公司排名/网站友情链接怎么添加
  • 建设银行信用卡官方网站/短视频营销成功的案例
  • 重庆做网站的公司有哪些/广告设计网站
  • 阿里云虚拟主机怎么建立网站/百度一下就知道官网
  • word超链接网站怎么做/上海网络推广需要多少
  • 专门做lolh的网站/谷歌seo综合查询
  • 日照网站优化/最新国际新闻10条
  • 学做沪江网站要多久/百度账号怎么注册
  • 南安网站建设/江北seo
  • 网站开发亿码酷技术/百度公司在哪里
  • 成都住房和城乡建设厅网站首页/最佳搜索引擎磁力王
  • 洛阳万悦网站建设/网站优化内容
  • 武昌网站建设价格多少/无锡整站百度快照优化
  • 深圳网站设计公司费用/seo综合查询网站源码
  • 南昌网站优化/今日新闻10条简短
  • 广元建设工程网站/搜索引擎优化举例说明
  • 网站开发后端 书/软文营销推广
  • 深圳品牌网站制作公司/西安企业做网站
  • rsync + inotify 数据实时同步
  • 49 C++ STL模板库18-类模板-pair
  • (nice!!!)(LeetCode 每日一题) 1277. 统计全为 1 的正方形子矩阵 (动态规划)
  • 在 React 中,​父子组件之间的通信(传参和传方法)
  • 有关SWD 仿真和PA.15, PB3, PB4的冲突问题
  • 软考网工选择题节选-2