Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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 如何从命令行获取属性值,如果不是从环境获取,如果不是-默认值?_Maven_Maven 2 - Fatal编程技术网

Maven 如何从命令行获取属性值,如果不是从环境获取,如果不是-默认值?

Maven 如何从命令行获取属性值,如果不是从环境获取,如果不是-默认值?,maven,maven-2,Maven,Maven 2,我想在maven pom文件中定义属性的默认值。但是,开发人员应该能够使用相同名称的环境变量来覆盖它,如果在mvn的命令行上指定了相同的属性,则应该反过来覆盖它 我该怎么做呢?我认为最好是定义一个属性的默认值,如果在命令行上指定了相同的属性,则可以覆盖该属性 此配置已在maven 2.2.1下测试。 在pom中定义您的属性: <properties> <finalname>dropbox</finalname> </properties

我想在maven pom文件中定义属性的默认值。但是,开发人员应该能够使用相同名称的环境变量来覆盖它,如果在mvn的命令行上指定了相同的属性,则应该反过来覆盖它


我该怎么做呢?

我认为最好是定义一个属性的默认值,如果在命令行上指定了相同的属性,则可以覆盖该属性

此配置已在maven 2.2.1下测试。

  • 在pom中定义您的属性:

    <properties>
             <finalname>dropbox</finalname>
    </properties>
    

  • 有可能在某个地方集成环境变量吗?我认为在maven 2.2.1中尝试几次之后是不可能的。Maven通过${env.xxx}引用环境变量,例如xxx。您可以通过“导出xxx=yyy”来定义它。但是如果你把这样的变量放在块中,它只能通过命令行被覆盖。这就像一个符咒。。。我可以从配置元素重写配置文件中的属性。
       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.dengjintian.uploader.Main</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <finalName>${finalname}</finalName>
                <appendAssemblyId>false</appendAssemblyId>
            </configuration>
            <!-- This will bind assembly:make-assembly to the package phase -->
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    
    mvn clean install  -Dfinalname=dropboxtmp