【问题标题】:How to choose root-context by maven profile如何通过 Maven 配置文件选择根上下文
【发布时间】:2019-08-24 18:23:27
【问题描述】:

我正在使用 maven 打包一个 ear-file。我有 2 个个人资料。 1 个配置文件 (aras) 用于生产。另一个配置文件 (aras_nb) 用于夜间构建。我想打包 2 个不同的耳朵文件。两个 ear-files 应该在同一个 weblogic 上运行。耳朵文件也有不同的数据源。这已经奏效了。 现在我想通过 Maven 配置文件选择 URL。 我该怎么做才能让它运行?

我有一个 master 项目、一个 ear-project、一个 web-project 和一个 ejb-project。

主项目的pom:

<groupId>xxx.yyy</groupId>
<artifactId>Aras</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<name>Aras</name>

<properties>
    <application.name>Aras</application.name>
    <application.ear.name>Aras-ear</application.ear.name>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <context-root>value</context-root>
</properties>

<modules>
    <module>Aras-ear</module>
    <module>Aras-web</module>
    <module>Aras-ejb</module>
</modules>

<profiles>
    <profile>
        <id>choose_environment</id>
        <build>
            <!-- enable resource filter to set the datasource name -->
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>
    </profile>
    <profile>
        <id>aras</id>
        <properties>
            <datasource.name>ArasDataSource</datasource.name>
            <environment.name>ARAS</environment.name>
            <contextroot.name>/aras</contextroot.name>
        </properties>
    </profile>
    <profile>
        <id>aras_nb</id>
        <properties>
            <datasource.name>ArasNbDataSource</datasource.name>
            <environment.name>ARAS-NB</environment.name>
            <contextroot.name>/aras_nb</contextroot.name>
        </properties>
    </profile>
</profiles>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.0</version>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

在 Eclipse 中,我使用配置文件“choose_environment,aras”执行 maven“clean package”。 当我对项目进行 Maven 更新时,上下文根会自动设置回“Aras-web”。

【问题讨论】:

    标签: eclipse maven jakarta-ee weblogic


    【解决方案1】:

    找到了。

    阿拉斯的pom:

    <profiles>
        <profile>
            <id>aras</id>
            <properties>
                <datasource.name>ArasDataSource</datasource.name>
                <environment.name>ARAS</environment.name>
                <rootcontext.name>aras</rootcontext.name>
                <earfile.name>Aras-ear</earfile.name>
            </properties>
        </profile>
        <profile>
            <id>aras_nb</id>
            <properties>
                <datasource.name>ArasNbDataSource</datasource.name>
                <environment.name>ARAS-NB</environment.name>
                <rootcontext.name>aras_nb</rootcontext.name>
                <earfile.name>Aras_nb-ear</earfile.name>
            </properties>
        </profile>
    </profiles>
    

    阿拉斯耳的pom:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ear-plugin</artifactId>
                <version>2.8</version>
                <configuration>
                    <version>6</version>
                    <defaultLibBundleDir>lib</defaultLibBundleDir>
                    <finalName>${earfile.name}-${project.Version}</finalName>
                    <modules> 
                        <webModule>
                            <groupId>${project.groupId}</groupId>
                            <artifactId>Aras-web</artifactId>
                            <contextRoot>/${rootcontext.name}</contextRoot>
                        </webModule>
                    </modules>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-06
      • 2017-04-13
      • 1970-01-01
      • 2017-06-13
      • 2020-09-04
      • 2017-07-12
      相关资源
      最近更新 更多