Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven配置文件变量web项目不工作_Maven_Variables_Inheritance_Classification_Profile - Fatal编程技术网

Maven配置文件变量web项目不工作

Maven配置文件变量web项目不工作,maven,variables,inheritance,classification,profile,Maven,Variables,Inheritance,Classification,Profile,我有一个模块化的maven项目,包含3个模块。在其中一个(WEB)中,配置文件变量未被识别为环境变量,但它采用它的真实名称,如下所示: <Principal POM> <Module App-core> <Module ejb> <Module web> 在主要POM中,有3个剖面具有相同的剖面属性和不同的值: <profile1> <environment>value1<

我有一个模块化的maven项目,包含3个模块。在其中一个(WEB)中,配置文件变量未被识别为环境变量,但它采用它的真实名称,如下所示:

<Principal POM> 
    <Module App-core>
    <Module ejb>    
    <Module web>

在主要POM中,有3个剖面具有相同的剖面属性和不同的值:

<profile1>
    <environment>value1</environment>

<profile2>
    <environment>value2</environment>

<profile3>
    <environment>value3</environment>

价值1
价值2
价值3
该变量用作依赖项的分类器变量,如下所示:

<dependency>
    <groupId>com.test</groupId>
    <artifactId>app-core</artifactId>
    <version>1.0.0</version>
    <classifier>${environment}</classifier>
</dependency>

com.test
应用核心
1.0.0
${environment}
在maven编译阶段,仅在Web项目中,它不会用变量值更改变量名


有任何帮助吗?

标记配置文件1配置文件2配置文件3未启用替换属性。为此,您必须以这种方式更改您的父pom

    <project>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

    <profiles>
        <profile>
            <id>profile1</id>
                <properties>
                    <environment>value1</environment>   
                </properties>
        </profile>

        <profile>
            <id>profile2</id>
                <properties>
                    <environment>value2</environment>   
                </properties>
        </profile>

        <profile>
            <id>profile3</id>
                <properties>
                    <environment>value2</environment>   
                </properties>
        </profile>
    </profiles>
</project>

src/main/resources
真的
简介1
价值1
简介2
价值2
简介3
价值2

现在您必须运行mvn安装-p profile1 yourProjectName

我已经解决了这个问题

我已将依赖项复制到配置文件中。我有多重依赖关系

这是profile1的代码

<profile>
    <id>profile1</id>
<properties>
<environment>value1</environment>
</properties>
    <dependency>
        <groupId>com.test</groupId>
        <artifactId>app-core</artifactId>
        <version>1.0.0</version>
        <classifier>${environment}</classifier>
    </dependency>
</profile>

简介1
价值1
com.test
应用核心
1.0.0
${environment}
这是配置文件2的代码

<profile>
    <id>profile2</id>
<properties>
<environment>value2</environment>
</properties>
    <dependency>
        <groupId>com.test</groupId>
        <artifactId>app-core</artifactId>
        <version>1.0.0</version>
        <classifier>${environment}</classifier>
    </dependency>
</profile>

简介2
价值2
com.test
应用核心
1.0.0
${environment}
这是profile3的代码

<profile>
    <id>profile3</id>
<properties>
<environment>value3</environment>
</properties>
    <dependency>
        <groupId>com.test</groupId>
        <artifactId>app-core</artifactId>
        <version>1.0.0</version>
        <classifier>${environment}</classifier>
    </dependency>
</profile>

简介3
价值3
com.test
应用核心
1.0.0
${environment}

您是如何启用配置文件的?我解决了这个问题。你的例子不起作用。谢谢