<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Eclipse 中的 Maven 多模塊項目 > 原文: [https://howtodoinjava.com/maven/multi-module-project-eclipse/](https://howtodoinjava.com/maven/multi-module-project-eclipse/) 了解**如何在 Eclipse** IDE 中創建多模塊 Maven 項目。 在此 [maven](https://howtodoinjava.com/maven/) 教程中,我們將學習在 eclipse 中創建*嵌套的 maven 項目*。 ## 1\. 創建多模塊 Maven 項目 讓我們創建一個 maven 項目,其中包含 **ear**, **war** 和 **jar** 類型的模塊。 我們正在創建企業應用的結構,其中應用將作為 EAR(企業應用獲取)文件部署到應用服務器(例如 weblogic,websphere)。 該 EAR 將包含一個(或多個)WAR(Web 應用資源)文件,并且每個 war 將包含服務項目,該服務項目具有面向所有 war 文件的通用代碼,打包類型為 JAR(Java ARchive)。 ![Projects Relationship](https://img.kancloud.cn/66/36/6636b4832d0af6f80a91b500958aff68_471x313.png) 項目關系 #### 1.1 創建父項目 - 打包類型為`pom` 在 Eclipse 中創建一個新的 Maven 項目。 將其包類型設置為`pom`。 ![Create new maven project](https://img.kancloud.cn/5b/f1/5bf1430ef08e052090eff167b9bfd51c_514x369.png) 創建 maven 項目 ![Fill maven group id and artifact id](https://img.kancloud.cn/36/d8/36d8bbe2a65dd977511075a63f69e091_596x413.png) 完整的 maven 組 id 和工件 id ![Change packaging jar to pom](https://img.kancloud.cn/f6/a1/f6a15dc47432dede9bbed57550f093fa_662x261.png) 將打包 jar 修改為 pom #### 1.2 創建 Maven 模塊 - 包類型為`EAR` 在父項目中創建一個新的 Maven 模塊。 將其包類型更改為`'ear'`。 該模塊可以具有 maven EAR 插件,該插件最終將構建要在服務器上部署的 EAR 文件。 ![Create new maven module](https://img.kancloud.cn/b6/5a/b65af1d91381d6594485ebd35d7f1845_623x435.png) 創建新的 maven 模塊 ![Add Module Name](https://img.kancloud.cn/5a/a8/5aa8c40a23382a75f144ca3608599778_594x338.png) 添加模塊名稱 ![Fill archetype details](https://img.kancloud.cn/18/0d/180d017d002f387d377c6b83abbca8cc_596x342.png) 完成的原型詳細信息 #### 1.3 創建 Maven 模塊 - 打包類型為`war`和`jar` 與 ear 模塊類似,為 war 文件和 jar 服務文件再創建兩個模塊。 分別更改其包并添加 maven 插件。 #### 1.4 最后結果 現在,在 eclipse 中觀察最終的項目結構,并驗證所有項目的`pom.xml`文件。 ```java <?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> <groupId>com.howtodoinjava.app</groupId> <artifactId>HelloWorldApp</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>HelloWorldApp</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <modules> <module>web</module> <module>service</module> <module>ear</module> </modules> </project> ``` ```java <?xml version="1.0"?> <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" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.howtodoinjava.app</groupId> <artifactId>HelloWorldApp</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>ear</artifactId> <name>ear</name> <packaging>ear</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>com.howtodoinjava.app</groupId> <artifactId>web</artifactId> <version>0.0.1-SNAPSHOT</version> <type>war</type> </dependency> </dependencies> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>3.0.1</version> <configuration> <modules> <webModule> <groupId>com.howtodoinjava.app</groupId> <artifactId>web</artifactId> <uri>web-0.0.1-SNAPSHOT.war</uri> <!-- Set custom context root --> <contextRoot>/application</contextRoot> </webModule> </modules> </configuration> </plugin> </plugins> </pluginManagement> </build> </project> ``` ```java <?xml version="1.0"?> <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" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.howtodoinjava.app</groupId> <artifactId>HelloWorldApp</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <groupId>com.howtodoinjava.app</groupId> <artifactId>web</artifactId> <version>0.0.1-SNAPSHOT</version> <name>web</name> <url>http://maven.apache.org</url> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>com.howtodoinjava.app</groupId> <artifactId>service</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> </project> ``` ```java <?xml version="1.0"?> <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" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.howtodoinjava.app</groupId> <artifactId>HelloWorldApp</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <groupId>com.howtodoinjava.app</groupId> <artifactId>service</artifactId> <version>0.0.1-SNAPSHOT</version> <name>service</name> <url>http://maven.apache.org</url> <packaging>jar</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project> ``` 要生成項目,請從控制臺運行`$mvn clean install`命令。 ```java E:\devsetup\workspacetemp\HelloWorldApp>mvn clean install [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] HelloWorldApp [pom] [INFO] service [jar] [INFO] web [war] [INFO] ear [ear] [INFO] ... ... [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ service --- [WARNING] JAR will be empty - no content was marked for inclusion! [INFO] Building jar: E:\devsetup\workspacetemp\HelloWorldApp\service\target\service-0.0.1-SNAPSHOT.jar [INFO] ... ... [INFO] Packaging webapp [INFO] Assembling webapp [web] in [E:\devsetup\workspacetemp\HelloWorldApp\web\target\web-0.0.1-SNAPSHOT] [INFO] Processing war project [INFO] Copying webapp resources [E:\devsetup\workspacetemp\HelloWorldApp\web\src\main\webapp] [INFO] Webapp assembled in [47 msecs] [INFO] Building war: E:\devsetup\workspacetemp\HelloWorldApp\web\target\web-0.0.1-SNAPSHOT.war [INFO] WEB-INF\web.xml already added, skipping [INFO] ... ... [INFO] [INFO] --- maven-ear-plugin:3.0.1:ear (default-ear) @ ear --- [INFO] Copying artifact [war:com.howtodoinjava.app:web:0.0.1-SNAPSHOT] to [web-0.0.1-SNAPSHOT.war] [INFO] Copy ear sources to E:\devsetup\workspacetemp\HelloWorldApp\ear\target\ear-0.0.1-SNAPSHOT [INFO] Building jar: E:\devsetup\workspacetemp\HelloWorldApp\ear\target\ear-0.0.1-SNAPSHOT.ear [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] HelloWorldApp 0.0.1-SNAPSHOT ....................... SUCCESS [ 0.328 s] [INFO] service ............................................ SUCCESS [ 0.839 s] [INFO] web ................................................ SUCCESS [ 0.838 s] [INFO] ear 0.0.1-SNAPSHOT ................................. SUCCESS [ 0.588 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.749 s [INFO] Finished at: 2018-11-18T15:04:52+05:30 [INFO] ------------------------------------------------------------------------ ``` 構建會生成名稱為`ear-0.0.1-SNAPSHOT.ear`的 ear 文件。 可以根據需要隨意更改項目名稱和生成的包。 ## 2\. 常見問題 #### 2.1 `groupId`與父`groupId`重復 Maven 子項目從父項目繼承屬性。 如果任何 Maven 模塊/項目的組 ID 或版本 ID 與父項目相同,那么我們只需刪除此條目即可。 ![Remove duplicate entries](https://img.kancloud.cn/43/1a/431a832370e7c109bf6a79a8b3c02535_565x217.png) 移除重復項 #### 2.2 工件不是項目的依賴項 如果在未指定**類型**屬性的情況下添加模塊依賴項(war),我們可能會遇到此錯誤。 ![Module type attribute](https://img.kancloud.cn/bc/d3/bcd34cbb1cacbadae9a4524f75f0f472_565x241.png) 模塊類型屬性 向我提供與在 Eclipse IDE 中創建多模塊 Maven 項目有關的問題。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看