Home >Java >javaTutorial >Maven notes (1)

Maven notes (1)

Linda Hamilton
Linda HamiltonOriginal
2025-01-28 04:13:09215browse

Maven notes (1)

Maven life cycle and plug -in configuration

Maven uses standard life cycle models, including

,

and default three life cycles. Each life cycle contains a series of orderly stages (Phase). clean site Phase

When executing the Maven command, for example, , Maven will execute all the commands from the

to

stage in order. The complete stage list can refer to the Maven document. mvn compile validate Target (GOAL) compile

The

Maven plug -in target (Goal) defines specific execution tasks and is bound to a specific stage. For example, the plug -in target is bound to the

stage. In the same stage, the execution order of the plug -in target is determined by the order order of the

part of the maven-compiler-plugin file. compile compile To view the plug -in target that is bound to a specific stage (eg pom.xml stage), you can use the following commands: <plugins>

View plug -in target and stage (source code) package

<code class="language-bash">mvn help:describe -Dcmd=package</code>
To understand the binding relationship between the plug -in target and the stage, you can view the source code of the plug -in. For example, the configuration of

plug -in and targets is as follows:

frontend-maven-plugin Corresponding Java code fragment: install-node-and-npm npm

It can be seen that these two goals are bound to the
<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>
stage.

Profile (configuration file)
<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 for:

Add or cover attributes

Add dependencies

Add plug -in dependencies
  • Add plug -in management dependencies
  • Set the default propile
  • You can set the default Profile through the
  • attribute in :

cover the enabled propile

Assume that Profile is enabled by default, to enable pom.xml Profile and disable activeByDefault Profile, you can use the following command:

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

The above is the detailed content of Maven notes (1). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn