Tomcat 8がある同じサーバーでJenkins 1.6を実行しています(Jenkins 2.0でも試しました)。MavenマルチモジュールアプリケーションをTomcat webappにデプロイする必要があります。デプロイする必要があるサブモジュールの2つのwarファイルがあります。 Deployプラグインは最大7つのTomcatをサポートし、正常に機能します。ただし、問題は、WebアプリケーションがTomcat 7で動作しないため、Tomcat 8を使用する必要があることです。JenkinsからTomcat 8にwarファイルを展開することは可能ですか?
質問への回答
以下のサンプルコードを使用して、Tomcat8コンテナで役割ベースの認証を設定できます。
<?xml version='1.0' encoding='utf-8'?>
<Tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="password" roles="manager-gui,manager-script" />
</Tomcat-users>
Maven認証の場合このパス%MAVEN_PATH%/ conf/settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings ...>
<servers>
<server>
<id>TomcatServer</id>
<username>admin</username>
<password>password</password>
</server>
</servers>
</settings>
Tomcat 7 Mavenプラグインの使用(Tomcat 8 Deploymentsにも使用できます)
<plugin>
<groupId>org.Apache.Tomcat.maven</groupId>
<artifactId>Tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>TomcatServer</server>
<path>/yourappcontextpath</path>
</configuration>
</plugin>
Tomcatにデプロイは、これらの目標のいずれかを必要に応じて実行できます。
mvn Tomcat7:deploy
mvn Tomcat7:undeploy
mvn Tomcat7:redeploy
また、より詳細なログを記録するには、logging.propertiesファイル%Tomcat_path%/ conf/logging.propertiesでJava.util.logging.ConsoleHandlerを有効にします。
org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = Java.util.logging.ConsoleHandler
org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = Java.util.logging.ConsoleHandler
org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Host-manager].level = INFO
org.Apache.catalina.core.ContainerBase.[Catalina].[localhost].[/Host-manager].handlers = Java.util.logging.ConsoleHandler