<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Eclipse 項目中的 Maven 自定義原型 > 原文: [https://howtodoinjava.com/maven/maven-custom-archetype/](https://howtodoinjava.com/maven/maven-custom-archetype/) **Maven 自定義原型**幫助創建特定類型的項目結構,而任何標準的 Maven 原型均無法使用。 在這個 Maven 教程中,我們將學習從一個 Eclipse 項目創建**創建自定義原型**。 特別是在某些情況下,當我們在生成的 maven 項目中需要自定義內容時,這是非常有用的,而 maven 并沒有提供現成的內容。 ```java Table of Contents Why custom archetype is required? Create Custom Archetype Import Project to Eclipse Create Template Files Create new projects with custom archetype ``` ## 為什么需要自定義原型? 通常,Maven 和一些第三方提供商會提供一些原型,這些原型對于輕松啟動我們的 Maven 項目很有用。 但是在我們的日常工作中,由于以下原因,我們可能會遇到一些需要創建自定義項目結構的場景: * 需要在組織內引入/強制執行特定的項目結構(包括程序包和框架類)。 * 通過快速開始實際工作,減少了建立項目結構的時間,提高了開發人員的生產率。 * 通過確保項目結構和預期的工件到位,減少了代碼檢查的工作量。 ## 創建自定義原型 Maven 已經為創建新原型的**提供了一種新原型`maven-archetype-archetype`**。 ```java mvn archetype:generate -B -DarchetypeArtifactId=maven-archetype-archetype -DgroupId=com.howtodoinjava.archetype -DartifactId=maven-howtodoinjava-archetype -Dversion=1.0-SNAPSHOT ``` 讓我們了解以上命令。 * `-DarchetypeArtifactId=maven-archetype-archetype`是 maven 提供的用于創建新的自定義原型的原型。 * `-DgroupId=com.howtodoinjava.archetype`是我們現在將創建的原型的組 ID。 * `-DartifactId=maven-howtodoinjava-archetype`是我們現在將創建的原型的`artifactId`。 * `-Dversion=1.0-SNAPSHOT`是 Maven 原型的版本。 這里的所有參數都是不言自明和直觀的。 盡管如此,我們仍然可以隨時遵循官方 Maven 文檔以獲取更多詳細信息。 現在,我們需要在命令提示符下運行此命令,然后確保已設置 [maven 類路徑](//howtodoinjava.com/maven/how-to-install-maven-on-windows-7/)。 因此,一旦在命令提示符下運行此命令,您將在啟動`mvn`命令的同一目錄中生成一個 maven 項目。 #### 導入項目到 Eclipse 現在的下一個工作是將這個項目導入 Eclipse 中,以進一步完善以滿足我們的要求。 導入后,eclipse 項目結構將如下所示。 ![Folder Structure of Imported Project](https://img.kancloud.cn/80/96/8096b9db0d19f758fa72fe61c5e42957_313x428.png) 導入項目的文件夾結構 將其導入 eclipse 后,我們需要執行以下步驟。 * 刪除`/src/main/resources/archetype-resources/src/main/java`和`/src/main/resources/archetype-resources/src/test/java`的內容–主要是`App.java`和`AppTest.java` * 我們需要將文件`/src/main/resources/META-INF/maven/archetype.xml`重命名為`archetype-metadata.xml`,稍后我們需要更改該文件的內容,我們將在一段時間后看到。 完成上述步驟后,文件夾結構將如下所示: ![Project Structure after Changes](https://img.kancloud.cn/fe/c8/fec811a924979637f6d8a8a43474e5be_334x428.png) 變更后的項目結構 #### 創建模板文件 現在,我們將為原型應每次生成的類和資源創建一些模板文件。 * 在`\src\main\resources\archetype-resources\src\main\java\__project-name__.java`中創建模板 Java 文件,其內容為: ```java package ${package}; public class ${project-name} { public static void ${project-name}SampleMethod() { System.out.println("Sample method generated by maven Archetype.."); } } ``` 該模板文件將根據運行時提供的占位符的值生成 Java 文件。 文件名中的占位符必須用`__NAME__`包圍,并且占位符邏輯名稱分隔符應為連字符(`-`)。 * 為屬性文件創建模板; 具有屬性鍵值模板,例如: `${project-name}.key=This is ${project-name} test property`,文件名將為`\src\main\resources\archetype-resources\src\main\resources\__property-file-name__.properties` ,因為我們想在運行時生成文件名,因此我們在文件名中放置了一個占位符。 * 隨意根據您的需求創建任意數量的模板文件。 * 現在我們需要像下面那樣修改`archetype-metadata.xml`。 – `requiredProperties`部分將聲明從該原型生成項目時所需的所有屬性及其默認值。 – `fileSets`將聲明將在最終生成的項目中放置的文件。 ```java <?xml version="1.0" encoding="UTF-8"?> <archetype-descriptor name="basic"> <requiredProperties> <requiredProperty key="project-name" /> <requiredProperty key="property-file-name"> <defaultValue>Resource-default</defaultValue> </requiredProperty> <!--JUnit version to use in generated project --> <requiredProperty key="junit-version"> <defaultValue>4.10</defaultValue> </requiredProperty> </requiredProperties> <!--Add new fileset for resources --> <!--Set filtered="true" to process files in that directory as templates --> <!--Set packaged="false" to remove package folder structure from resource directory --> <fileSets> <fileSet filtered="true"> <directory>src/main/resources</directory> <!--Filters example --> <includes> <include>*.txt</include> <include>*.properties</include> </includes> <excludes> <exclude>**/*.xml</exclude> </excludes> </fileSet> <fileSet filtered="true" packaged="true"> <directory>src/main/java</directory> </fileSet> <fileSet filtered="true" packaged="true"> <directory>src/test/java</directory> </fileSet> </fileSets> </archetype-descriptor> ``` * 我們還需要更改`archetype-resources`文件夾下的`pom.xml`文件,以接受運行時 GAV(`GroupId:ArtifactId:Version`)坐標。 為了接受運行時值,我們需要將其更改為占位符,對于將使用此原型生成的項目。 `archetype-resources`下的`pom.xml`應該看起來像 ```java <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>${groupId}</groupId> <artifactId>${artifactId}</artifactId> <version>${version}</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit-version}</version> <scope>test</scope> </dependency> </dependencies> </project> ``` 因此,我們基本上完成了與原型更改相關的更改,現在應該通過命令`mvn clean install`來構建原型 maven 項目。 該項目應該構建良好,我們已經準備好使用此原型來創建新的 Maven 項目。 ## 使用自定義原型創建新項目 成功構建原型項目并將此項目成功安裝到本地后,我們將運行以下命令來創建 maven 項目。 ```java mvn archetype:generate -DarchetypeCatalog=local -DarchetypeArtifactId=maven-howtodoinjava-archetype -DarchetypeGroupId=com.howtodoinjava.archetype -DarchetypeVersion=1.0-SNAPSHOT ``` Maven 將啟動交互模式,并詢問有關新 Maven 項目的所有必需屬性。 具有默認值的屬性將被跳過,但是如果您在上一步中沒有確認配置,則可以覆蓋默認值。 自定義原型輸入例如: ![Create Custom archetypes Example](https://img.kancloud.cn/a0/d2/a0d2400917420c28020081c63a1bd1aa_695x298.png) 創建自定義原型示例 完成此步驟后,我們應該根據已開發的模板創建一個新項目。 因此,展望未來,如果您處于任何情況下,默認的 Maven 原型都不足夠,則可以使用 Maven 的隱藏功能來創建自己的自定義原型。 [下載源碼](//howtodoinjava.com/wp-content/downloads/maven-howtodoinjava-archetype.zip) 學習愉快!
                  <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>

                              哎呀哎呀视频在线观看