maven tomcat用配置文件部署插件



我正在尝试在项目pom.xml文件中使用配置文件来控制我的战争文件到特定服务器的部署。例如,我有一个本地配置文件和一个开发服务器配置文件。这是我的配置文件设置

的方式
<profiles>
    <profile>
        <id>local</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <property>
                <name>target</name>
                <value>local</value>
            </property>
        </activation>
        ...
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <url>http://10.16.21.60:8080/manager/text</url>
                        <server>localTomcat</server>
                        <path>/</path>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
    <profile>
        <id>dev</id>
        <activation>
            <property>
                <name>target</name>
                <value>dev</value>
            </property>
        </activation>
        ...
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <url>http://devserverurl:8080/manager/text</url>
                        <server>devTomcat</server>
                        <path>/</path>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>

我正在打电话

mvn org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy

尝试此操作时,我可以看到,而不是尝试连接到配置10.16.21.60中提供的IP地址,而是尝试连接到localhost。我在本地settings.xml文件中使用用户名和密码定义了devTomcatlocalTomcat

如果然后添加-X选项以获取更多信息,我可以在插件的调试输出中看到(强调添加

    [debug]配置mojo org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:从插件领域classrealm [plugin> org.apache.tomcat.maven:tomcat7-maven-plugin:2.2.launcher $ appClassLoader@5C647E05]    [debug]配置Mojo'org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:与基本配置器一起部署'    [debug](f)charset = iso-8859-1    [debug](f)contextFile = ....    [debug](f)忽略packaging = false    [debug](f)模式=战争    [调试](f)包装=战争    [debug](f)路径= ...    [debug](f)update = false    [debug](f)url =  http://localhost:8080/manager/text     [debug](f)版本= 2.2    [debug](f)warfile = ...    [debug](f)设置= org.apache.maven.execution.settingsadapter@61874b9d    [调试]  - 结束配置 -     [信息]将战争部署到http://localhost:8080/...     [debug]未指定用于身份验证的服务器 - 使用默认值

看来我的配置设置没有被遵守!我认为这会起作用的方式是,由于激活了local配置文件,因此可以使用该配置。

我也尝试简单地将插件在我的<build>部分中定义,而没有配置文件,并具有相同的效果。它总是尝试在没有身份验证的情况下连接到http://localhost:8080

可能值得注意的是,我也在为此项目使用gwt-maven-plugin,我不知道这是否会干扰Tomcat插件配置。

好吧,事实证明,我在插件中使用了错误的groupID。不是

<groupId>org.codehaus.mojo</groupId>

<groupId>org.apache.tomcat.maven</groupId>

现在像冠军一样工作!

最新更新