首頁 > Java > java教程 > Maven Notes(1)

Maven Notes(1)

Linda Hamilton
發布: 2025-01-28 04:13:09
原創
181 人瀏覽過

Maven notes (1)

Maven 生命週期及插件配置

Maven 使用標準的生命週期模型,包含 defaultcleansite 三個生命週期。 每個生命週期包含一系列有序的階段 (Phase)。

階段 (Phase)

執行 Maven 命令時,例如 mvn compile,Maven 會依次執行從 validatecompile 階段的所有命令。 完整的階段列表可參考 Maven 文檔。

目標 (Goal)

Maven 插件的目標 (Goal) 定義了具體的執行任務,並綁定到特定的階段。例如,maven-compiler-plugin 插件的 compile 目標綁定到 compile 階段。 同一階段中,插件目標的執行順序由 pom.xml 文件中 <plugins> 部分的條目順序決定。

要查看綁定到特定階段 (例如 package 階段) 的插件目標,可以使用以下命令:

<code class="language-bash">mvn help:describe -Dcmd=package</code>
登入後複製

查看插件目標和階段 (源碼)

要了解插件目標和階段的綁定關係,可以查看插件的源代碼。 例如,frontend-maven-plugin 插件的 install-node-and-npmnpm 目標的配置如下:

<code class="language-xml"><plugin>
  <groupId>com.github.eirslett</groupId>
  <artifactId>frontend-maven-plugin</artifactId>
  <version>1.15.1</version>
  <executions>
    <execution>
      <id>install-node-and-npm</id>
      <goals>
        <goal>install-node-and-npm</goal>
      </goals>
    </execution>
    <execution>
      <id>npm install</id>
      <goals>
        <goal>npm</goal>
      </goals>
    </execution>
    ...
  </executions>
</plugin></code>
登入後複製

對應的 Java 代碼片段:

<code class="language-java">@Mojo(name="install-node-and-npm", defaultPhase = LifecyclePhase.GENERATE_RESOURCES, threadSafe = true)
public final class InstallNodeAndNpmMojo extends AbstractFrontendMojo {
  // ...
}

@Mojo(name="npm",  defaultPhase = LifecyclePhase.GENERATE_RESOURCES, threadSafe = true)
public final class NpmMojo extends AbstractFrontendMojo {
  // ...
}</code>
登入後複製

可以看到,這兩個目標都綁定到 GENERATE_RESOURCES 階段。

Profile (配置文件)

Profile 用於:

  • 添加或覆蓋屬性
  • 添加依賴項
  • 添加插件依賴項
  • 添加插件管理依賴項

設置默認 Profile

可以通過在 pom.xml 中配置 activeByDefault 屬性來設置默認的 Profile:

<code class="language-xml"><profiles>
  <profile>
    <activation>
      <property>
        <name>debug</name>
      </property>
    </activation>
    ...
  </profile>
  <profile>
    <id>dev</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
    ...
  </profile>
</profiles></code>
登入後複製

覆蓋已啟用的 Profile

假設 dev Profile 默認啟用,要啟用 production Profile 並禁用 dev Profile,可以使用以下命令:

<code class="language-bash">mvn -P=-dev,production</code>
登入後複製

以上是Maven Notes(1)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板