Java 在Maven中,如何定制生命周期阶段?

Java 在Maven中,如何定制生命周期阶段?,java,maven-2,jakarta-ee,maven,Java,Maven 2,Jakarta Ee,Maven,我在以下子模块中分离了一个Java EE项目: 战争计划 ejb项目 工程耳 项目测试 我还有一个根pom,其中包括上述模块。因为我在一个单独的项目中有测试,所以在前三个模块中运行测试阶段没有意义,因为编译或打包最后一个模块没有意义,因为它只包含其他三个模块的测试。我的问题是:如何从前3个模块中删除测试阶段,以及如何从测试项目中删除其他阶段?您可以通过设置不同的配置文件来实现这一点: 经验: 部署战争 net.fpic tomcat部署器插件 1.0-快照 销售时点情报系统 安装 部署 $

我在以下子模块中分离了一个Java EE项目:

  • 战争计划
  • ejb项目
  • 工程耳
  • 项目测试

我还有一个根pom,其中包括上述模块。因为我在一个单独的项目中有测试,所以在前三个模块中运行测试阶段没有意义,因为编译或打包最后一个模块没有意义,因为它只包含其他三个模块的测试。我的问题是:如何从前3个模块中删除测试阶段,以及如何从测试项目中删除其他阶段?

您可以通过设置不同的配置文件来实现这一点:

经验:


部署战争
net.fpic
tomcat部署器插件
1.0-快照
销售时点情报系统
安装
部署
${deploymentManagerRestHost}
${deploymentManagerRestPort}
${deploymentManagerRestUsername}
${deploymentManagerRestPassword}
地址/目标/地址服务.war
质量保证
环境
质量保证
10.50.50.50
58090
myotherusername
myotherpassword

您可以在cli中使用
mvn-Pdeploywar-Denv=dev clean install

调用deploywar配置文件。需要注意的是,据我所知,该配置文件在maven 3中正在消失。希望他们能使其反向兼容。。。我们的大多数pom文件都是配置文件。@CoolBeans-即将消失的是在pom文件或设置文件之外定义的配置文件。您能举一个例子说明我需要做什么吗?您当前的pom是什么样子的?
    <profile>
        <id>deploywar</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>net.fpic</groupId>
                    <artifactId>tomcat-deployer-plugin</artifactId>
                    <version>1.0-SNAPSHOT</version>
                    <executions>
                        <execution>
                            <id>pos</id>
                            <phase>install</phase>
                            <goals>
                                <goal>deploy</goal>
                            </goals>
                            <configuration>
                                <host>${deploymentManagerRestHost}</host>
                                <port>${deploymentManagerRestPort}</port>
                                <username>${deploymentManagerRestUsername}</username>
                                <password>${deploymentManagerRestPassword}</password>
                                <artifactSource>
                                  address/target/addressservice.war
                                </artifactSource>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>

    <!-- Defines the QA deployment information -->
    <profile>
        <id>qa</id>
        <activation>
            <property>
                <name>env</name>
                <value>qa</value>
            </property>
        </activation>
        <properties>
            <deploymentManagerRestHost>10.50.50.50</deploymentManagerRestHost>
            <deploymentManagerRestPort>58090</deploymentManagerRestPort>
            <deploymentManagerRestUsername>
              myotherusername
            </deploymentManagerRestUsername>
            <deploymentManagerRestPassword>
              myotherpassword
            </deploymentManagerRestPassword>
        </properties>
    </profile>