2016-05-22 14 views
8

Sto eseguendo Jenkins 1.6 (e anche provato con Jenkins 2.0) sullo stesso server in cui ho Tomcat 8. Devo distribuire l'applicazione multimodule Maven alla webapp Tomcat. Ha due file di guerra dai sottomoduli che devono essere distribuiti. Il plug-in di distribuzione supporta Tomcat fino a 7 ed è funzionante. Tuttavia, il problema è che ho bisogno di usare Tomcat 8, dal momento che la mia applicazione web non funziona su Tomcat 7. È possibile distribuire file di guerra da Jenkins a Tomcat 8?Jenkins distribuisce il file di guerra a Tomcat 8

risposta

16

risposta alla tua domanda

  1. Tomcat 7 implementare plugin può essere utilizzato per Tomcat 8 e 9 distribuzione anche, funzionerà al 100%.
  2. necessario impostare i parametri di autenticazione con ruoli assegnati dovrebbe essere impostato nel file tomcat-users.xml (% TOMCAT8_PATH%/conf/tomcat-users.xml)
  3. Sotto codice di esempio può essere utilizzato per impostare l'autenticazione basata ruolo nella contenitore 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> 
    
  4. Per Maven autenticazione in questo percorso% 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> 
    
  5. utilizza Tomcat 7 Maven Plugin (Può essere usato per Tomcat 8 distribuzioni anche)

      <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> 
    
  6. È possibile eseguire il deployment su Tomcat in base a necessità.
    mvn tomcat7: distribuire
    mvn tomcat7: undeploy
    mvn tomcat7: ridistribuire

  7. Inoltre, per la registrazione più dettagliata è possibile abilitare java.util.logging.ConsoleHandler in logging.properties file% Tomcat_path%/conf /logging.properties.

         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 
    
+0

Il plug-in Deploy Container funziona perfettamente anche con tomcat 9. – Max

0

questo non funziona per me. Viene visualizzato il seguente errore:

ERROR: Build step failed with exception 
org.codehaus.cargo.container.ContainerException: Failed to redeploy [C:\Program Files (x86)\Jenkins\workspace\launchbi-admin deploy to qa\launchbi-admin\target\launchbi-admin-1.0.0-SNAPSHOT.war] 
    at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:188) 
    at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:77) 
    at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:147) 
    at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:117) 
    at hudson.FilePath.act(FilePath.java:998) 
    at hudson.FilePath.act(FilePath.java:976) 
    at hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:114) 
    at hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeploy(PasswordProtectedAdapterCargo.java:93) 
    at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:64) 
    at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:736) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:682) 
    at hudson.model.Build$BuildExecution.post2(Build.java:186) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:627) 
    at hudson.model.Run.execute(Run.java:1749) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:97) 
    at hudson.model.Executor.run(Executor.java:421) 
Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: The username you provided is not allowed to use the text-based Tomcat Manager (error 403) 
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:704) 
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:876) 
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:889) 
    at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:173) 
    ... 17 more 
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: http://192.168.1.198:8088/manager/text/list 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:571) 
    ... 20 more 
org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: The username you provided is not allowed to use the text-based Tomcat Manager (error 403) 
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:704) 
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:876) 
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:889) 
    at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:173) 
    at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:77) 
    at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:147) 
    at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:117) 
    at hudson.FilePath.act(FilePath.java:998) 
    at hudson.FilePath.act(FilePath.java:976) 
    at hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:114) 
    at hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeploy(PasswordProtectedAdapterCargo.java:93) 
    at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:64) 
    at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:736) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:682) 
    at hudson.model.Build$BuildExecution.post2(Build.java:186) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:627) 
    at hudson.model.Run.execute(Run.java:1749) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:97) 
    at hudson.model.Executor.run(Executor.java:421) 
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: http://192.168.1.198:8088/manager/text/list 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
    at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:571) 
    ... 20 more 

Sto eseguendo la versione 2.84 di Jenkins con Deploy alla versione 1.13 del contenitore. Tomcat 8 versione 8.5.16

+2

Il tuo post non sembra una risposta reale. Si prega di provare a cercare domande simili e guarda nelle risposte per loro. Se non riesci a trovare la stessa domanda, poni la tua domanda e prenditi cura della sua qualità –

+0

Come suggerito da @StepanNovikov, questa è una domanda piuttosto nuova della risposta alla domanda originale. Molto probabilmente è solo correlato alla configurazione predefinita di Tomcat che non consente al gestore di distribuire da altro che localhost. Si prega di controllare questo post per la soluzione https://stackoverflow.com/questions/41675813/the-username-you-provided-is-not-allowed-to-use-the-text-based-tomcat-manager-e –

+0

Scuse, Ho cliccato su "Aggiungi un'altra risposta" invece di "Aggiungi commento". Grazie @zoran jeremic, il link che hai fornito risolve il mio problema – Johno

Problemi correlati