免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
使用eclipse創(chuàng)建maven的父子工程

1、首先,確保eclipse中已經(jīng)配置了maven,如下圖:

2、New-Project-MavenProject...如下圖,選擇create a simple project,原因父項目需要建立的packaging為POM,子項目建立的packaging為jar或者war,勾選此處,在下一步中可以選擇packaging:

3、選擇打包方式

4、創(chuàng)建子工程,New-Project-Maven Module,再次提醒,父項目的packaging選擇POM,子項目選擇Jar或者war,順便說一句,一般來說,要創(chuàng)建在tomcat里運行的項目,應該是要創(chuàng)建war,比如本文說的service子項目和web子項目,應該是創(chuàng)建成war,但是有例外是,如果要創(chuàng)建spring boot微服務項目,因為spring boot采用的都是富jar形式,就需要所有的子項目都為jar,這僅僅是個人理解,具體按照自己的需求建立。

5、選擇子工程的打包方式,這里設置為jar

6、寫到此時,已經(jīng)創(chuàng)建完成了,我們可以看一下項目架構(gòu)

7、我們把整個項目(父項目)上打包,編譯運行,再看一下項目架構(gòu):

8、我們可以在DemoParent-Son2中引用項目DemoParent-Son1,直接在pom文件中加入依賴即可。

  1. <dependencies>
  2. <dependency>
  3. <groupId>com.nancy</groupId>
  4. <artifactId>DemoParent-Son1</artifactId>
  5. <version>0.0.1-SNAPSHOT</version>
  6. <type>jar</type>
  7. </dependency>
  8. </dependencies>

這樣,在子項目DemoParent-Son2中就能直接調(diào)用子項目DemoParent-Son1中的類。

注意:子工程之間的引用:子工程若是web項目(對應的自動達成的就是war包),可以引用子工程是java項目的工程。但是子工程是java項目卻不能引用子工程是web項目的工程。

9、寫到此時,項目已經(jīng)告一段落了,但是小編基于需求,又嘗試了一下maven的子項目war與war之間的引用。發(fā)現(xiàn)也是可以的。我們再新建一個web子工程DemoParent-Son3,在pom文件中引入子項目DemoParent-Son2,配置文件如下:

  1. <?xml version='1.0'?>
  2. <project xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd' xmlns='http://maven.apache.org/POM/4.0.0'
  3. xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>com.nancy</groupId>
  7. <artifactId>DemoParent</artifactId>
  8. <version>0.0.1-SNAPSHOT</version>
  9. </parent>
  10. <artifactId>DemoParent-Son3</artifactId>
  11. <version>0.0.1-SNAPSHOT</version>
  12. <packaging>war</packaging>
  13. <dependencies>
  14. <dependency>
  15. <groupId>com.nancy</groupId>
  16. <artifactId>DemoParent-Son2</artifactId>
  17. <version>0.0.1-SNAPSHOT</version>
  18. <type>war</type>
  19. </dependency>
  20. </dependencies>
  21. <build>
  22. <finalName>DemoParent-Son3</finalName>
  23. <!-- 配置中有點說明下:把jar包自動拷貝到web-inf目錄地下,這個搞web開發(fā)都懂是為什么了 -->
  24. <plugins>
  25. <plugin>
  26. <artifactId>maven-antrun-plugin</artifactId>
  27. <executions>
  28. <execution>
  29. <id>copy-lib-src-webapps</id>
  30. <phase>package</phase>
  31. <configuration>
  32. <tasks>
  33. <delete dir='WebContent/WEB-INF/lib' />
  34. <copy todir='WebContent/WEB-INF/lib'>
  35. <fileset dir='target/${artifactId}/WEB-INF/lib'>
  36. <include name='*' />
  37. </fileset>
  38. </copy>
  39. </tasks>
  40. </configuration>
  41. <goals>
  42. <goal>run</goal>
  43. </goals>
  44. </execution>
  45. </executions>
  46. </plugin>
  47. </plugins>
  48. </build>
  49. </project>
兩個項目編譯、打包之后,生成的WAR文件(DemoParent-Son3.war和DemoParent-Son2.war)幾乎是相同的,盡管DemoParent-Son3項目還沒有任何類和資源。重要的是,兩個WAR歸檔文件中都有全部的依賴庫和配置。

根據(jù)Java規(guī)范,classpath不能指定WAR文件。這就意味著在編譯時,DemoParent-Son3項目無法訪問DemoParent-Son2項目中定義的類,所以在DemoParent-Son3l項目中,我們不能像常規(guī)類組件那樣擴展或使用DemoParent-Son2定義的類。要解決這一問題,我們必須重新設置maven-war-plugin的一項缺省配置,該設置如下面所示:
  1. <build>
  2. <plugins>
  3. <plugin>
  4. <artifactId>maven-war-plugin</artifactId>
  5. <configuration>
  6. <attachClasses>true</attachClasses>
  7. </configuration>
  8. </plugin>
  9. <plugins>
  10. <build>
啟用attachClasses選項可以把JAR文件(DemoParent-Son2.jar)和標準的WAR文件同時安裝到Maven倉庫中。要訪問該JAR文件,我們需要像如下所示的那樣修改DemoParent-Son3項目的依賴列表。
  1. <dependencies>
  2. <dependency>
  3. <groupId>com.nancy</groupId>
  4. <artifactId>DemoParent-Son2</artifactId>
  5. <version>0.0.1-SNAPSHOT</version>
  6. <type>jar</type>
  7. <classifier>classes</classifier>
  8. <scope>provided</scope>
  9. </dependency>
  10. <dependency>
  11. <groupId>com.nancy</groupId>
  12. <artifactId>DemoParent-Son2</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <type>war</type>
  15. </dependency>
  16. </dependencies>
可以看到,DemoParent-Son3項目用DemoParent-Son2 WAR創(chuàng)建最終的Web歸檔文件,出于編譯需要,還使用了DemoParent-Son2的類(打包在JAR里)。我們將屬性classifier設置為classes,以此定義該從倉庫中選擇哪個工件。將scope設置為provided,則是告訴Maven只在編譯時需要該工件,運行時則從其他地方獲得?!捌渌胤健碑斎痪褪侵窪emoParent-Son3項目的WAR工件,WAR插件會將WAR和JAR合并在一起?,F(xiàn)在已經(jīng)正確配置了依賴關系,那我們就開始測試一下。
在DemoParent-Son3中創(chuàng)建一個測試類Test,在測試類中調(diào)用一下DemoParent-Son2中的類Student,如下:
  1. public class Test {
  2. public static void main(String[] args) {
  3. Student s = new Student();
  4. s.setName('aaaa');
  5. System.out.println(s.getName() '1111111');
  6. }
  7. }
運行一下,發(fā)現(xiàn)輸出欄有我們要的值。
源代碼鏈接https://pan.baidu.com/s/13baE0YjgbEGbM263MRWb5g
提取碼4y45

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Maven學習總結(jié)
【Maven用戶手冊】Maven依賴關系
maven常用命令
Maven實戰(zhàn)(六)
maven多個子項目、父項目之間的引用問題
Maven版本控制
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服