【问题标题】:Maven multiple profile not workingMaven 多个配置文件不起作用
【发布时间】:2013-05-17 20:24:45
【问题描述】:

我想将我的战争上传到两个单独的位置。为此,我在 pom.xml 中定义了以下配置文件;

   ........
    <profile>
    <id>deployPoc</id>
    <activation>
        <activeByDefault>false</activeByDefault>
    </activation>
    <properties>
        <jboss.host>POC_Deploy</jboss.host>
        <jboss.deployDir>/storage2/home/server1/</jboss.deployDir>
        <jboss.deployUrl>scp://server1.com</jboss.deployUrl>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>com.atlassian.maven.plugins</groupId>
                <artifactId>maven-upload-plugin</artifactId>
                <version>1.1</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.wagon</groupId>
                        <artifactId>wagon-ssh</artifactId>
                        <version>2.4</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <resourceSrc>
                        ${project.build.directory}/${project.build.finalName}.${project.packaging}
                    </resourceSrc>
                    <resourceDest>${jboss.deployDir}</resourceDest>
                    <serverId>${jboss.host}</serverId>
                    <url>${jboss.deployUrl}</url>
                </configuration>
            </plugin>
        </plugins>
    </build>
</profile>
<profile>
    <id>uploadUpdate</id>
    <activation>
        <activeByDefault>false</activeByDefault>
    </activation>
    <properties>
        <updateReleaseHost>PluginReleaseSite</updateReleaseHost>
        <updateReleaseDir>/var/www/html/releases/Latest/</updateReleaseDir>
        <updateReleaseUrl>scp://server2.com</updateReleaseUrl>
    </properties>
    <build>
        <plugins>
            <plugin>
            <groupId>com.atlassian.maven.plugins</groupId>
            <artifactId>maven-upload-plugin</artifactId>
            <version>1.1</version>
            <dependencies>
                <dependency>
                    <groupId>org.apache.maven.wagon</groupId>
                    <artifactId>wagon-ssh</artifactId>
                    <version>2.4</version>
                </dependency>
            </dependencies>
            <configuration>
                <resourceSrc>
                    ${project.build.directory}/${project.build.finalName}.${project.packaging}
                </resourceSrc>
                <resourceDest>${updateReleaseDir}</resourceDest>
                <serverId>${updateReleaseHost}</serverId>
                <url>${updateReleaseUrl}</url>
            </configuration>
          </plugin>
    </plugins>
  </build>
</profile>

我正在尝试使用以下命令执行,并且只执行其中一个;

mvn help:active-profiles upload:upload -PdeployPoc -PuploadUpdate

它只执行'uploadUpdate',我已经尝试了所有方法,即 -Pa,b; -P a,b 等等。

尽管 maven 显示如下,但似乎没有任何效果;

The following profiles are active:

 - releaseRepository (source: external)
 - snapshotsRepository (source: external)
 - deployPoc (source: com.Project:1.0-SNAPSHOT)
 - uploadUpdate (source: com.Project:1.0-SNAPSHOT)

我错过了什么吗?

谢谢,

--

SJunejo

【问题讨论】:

    标签: maven profile activation


    【解决方案1】:

    根据配置文件,您使用的是相同的插件,这意味着您有相同的执行,这意味着相同的执行 ID,在您的情况下是相同的。

    我建议使用具有不同 ID 的显式执行。

    除上述之外,我建议使用jboss plugin 部署到不是 Maven 预期方法的应用程序服务器。

    【讨论】:

    • 我尝试过多次执行,使用唯一的执行 ID,硬编码所有配置并完全删除配置文件。该插件引发以下异常; [错误] 无法在项目 Hothouse 上执行目标 com.atlassian.maven.plugins:maven-upload-plugin:1.1:upload (default-cli):目标 com 的参数 'serverId'、'url'、'resourceSrc'。 atlassian.maven.plugins:maven-upload-plugin:1.1:upload 丢失或无效 -> [Help 1] :-(
    • 因为上面的评论是对的,我不能一次执行两次。我把工作分成两部分,每次上传执行两次 mvn upload:upload -PXXX 。我使用了这里描述的技术stackoverflow.com/questions/4360958/…
    猜你喜欢
    • 2022-01-24
    • 2018-07-20
    • 1970-01-01
    • 2013-07-04
    • 2018-09-03
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    相关资源
    最近更新 更多