Gamit ang maven-deploy-plugin

At isa pang napaka-kagiliw-giliw na paksa ay ang awtomatikong pag-deploy ng naka-assemble na pakete. Sabihin nating nagtayo tayo ng sarili nating library gamit ang Maven. Paano natin ito awtomatikong itulak sa isang lokal, pangkorporasyon, o gitnang imbakan ng Maven?

Ang Maven ay may espesyal na maven-deploy-plugin na plugin para dito . Halimbawa:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
    	<version>2.5</version>
    	<configuration>
          <file>${project.build.directory}\${project.artifactId}-src.zip</file>
          <url>${project.distributionManagement.repository.url}</url>
          <repositoryId>${project.distributionManagement.repository.id}</repositoryId>
          <groupId>${project.groupId}</groupId>
          <artifactId>${project.artifactId}</artifactId>
          <version>${project.version}</version>
      	  <packaging>zip</packaging>
          <pomFile>pom.xml</pomFile>
    	</configuration>
  	</plugin>

Sa mga setting na ito, maaari mong itulak ang built library sa repositoryo ng Maven bilang isang wastong pakete. Hindi namin susuriin nang detalyado ang prosesong ito, ngunit isasaalang-alang nang maikli kung ano ang nangyayari dito:

Tinutukoy ng file tag ang isang file na itutulak sa Maven repository bilang isang bagong library.

Ang url tag ay ang path patungo sa Maven repository (lokal/corporate/…).

Tinutukoy ng tag ng repositoryId ang identifier ng repository kung saan isasagawa ang deployment.

Tinutukoy ng groupId , artifactId , mga tag ng bersyon ang karaniwang pagkakakilanlan ng package sa repositoryo ng Maven. Ito ay sa pamamagitan ng tatlong mga parameter na ang isang library ay maaaring natatanging makilala.

Ang tag ng packaging ay ginagamit upang matiyak na ang resulta ay ipinadala bilang isang solong zip file. Kung hindi mo ito tinukoy, magkakaroon ng isang jar file, kahit na mayroon kang ilang mga jar file.

Ang pomFile tag ay opsyonal at nagbibigay-daan sa iyong magpadala ng isa pang pom.xml sa repository na hindi naglalaman ng nakatago o overhead na data.

Pag-deploy ng web application sa Tomcat gamit ang Maven

Ang pinakasikat na web server para sa Java web application ay Apache Tomcat . At siyempre, sa tulong ng Maven, maaari kang mag-deploy ng mga war file nang direkta sa isang lokal o kahit remote na Tomcat server.

Malalaman natin kung paano i-install at i-configure ang Tomcat sa ibang pagkakataon, ngunit ngayon ay hahawakan lamang natin ang paksa ng awtomatikong pag-deploy ng aming web application.

Unang hakbang. Kailangan naming bigyan ng access si Maven sa server ng Tomcat. Upang gawin ito, buksan ang conf/tomcat-users.xml file sa direktoryo kung saan naka-unpack ang Apache Tomcat at idagdag ang manager-gui at manager-script na mga tungkulin :

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <user username="admin" password="admin" roles="manager-gui,manager-script" />
</tomcat-users>

Ikalawang hakbang. Payagan ang Maven na ma-access ang Tomcat. Upang gawin ito, buksan ang $MAVEN_HOME/conf/settings.xml file at idagdag ang server:

<?xml version="1.0" encoding="UTF-8"?>
<settings ...>
  <servers>
	<server>
  	<id>TomcatServer</id>
  	<username>admin</username>
  	<password>admin</password>
	</server>
  </servers>
</settings>

Ikatlong hakbang. Nagdagdag kami ng espesyal na plugin para sa awtomatikong pag-deploy ng aming application sa Apache Tomcat. Ang plugin ay tinatawag na tomcat7-maven-plugin . Sa pamamagitan ng paraan, hindi ito nilikha ng mga developer ng Maven, ngunit ng mga developer ng Tomcat, tulad ng maaari mong hulaan mula sa pangalan.

	<build>
    	<plugins>
        	<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>/simpleProject</path>
            	</configuration>
        	</plugin>
    	</plugins>
	</build>

Sa seksyon ng pagsasaayos, tukuyin ang:

  • Ang url ay ang address kung saan tumatakbo ang Tomcat at ang landas patungo sa manager/text
  • server - server id mula sa settings.xml file
  • path - ang address kung saan magiging available ang naka-deploy na application

Mga utos sa pamamahala ng deployment:

mvn tomcat7:deploy I-deploy ang application sa Tomcat
mvn tomcat7:undeploy Alisin ang application mula sa Tomcat
mvn tomcat7:redeploy I-deploy muli ang application

I-deploy gamit ang Cargo Plugin

Ang isa pang kapaki-pakinabang at maraming nalalaman na plugin para sa pag-deploy ng mga web application ay ang Cargo Plugin . Alam niya kung paano magtrabaho sa iba't ibang uri ng mga web server. Narito kung paano mag-deploy kasama nito sa Apache Tomcat:

<build>
    <plugins>
    	<plugin>
            <groupId>org.codehaus.cargo</groupId>
            <artifactId>cargo-maven2-plugin</artifactId>
        	<version>1.9.10</version>
        	<configuration>
            	<container>
                	<containerId>tomcat8x</containerId>
                    <type>installed</type>
                	<home>Insert absolute path to tomcat 7 installation</home>
            	</container>
            	<configuration>
                    <type>existing</type>
                    <home>Insert absolute path to tomcat 7 installation</home>
            	</configuration>
        	</configuration>
   	    </plugin>
    </plugins>
</build>

Upang i-install ang web application sa iyong lokal na Tomcat, kailangan mo lang patakbuhin ang mga utos:

mvn install
mvn cargo:deploy

Kung gusto naming mag-deploy sa isang malayuang web server, kakailanganin naming mag-set up ng mga karapatan sa pag-access sa server na ito. Upang gawin ito, kailangan mo lamang na irehistro ang mga ito sa pom.xml :

<configuration>
	<container>
        <containerId>tomcat8x</containerId>
    	<type>remote</type>
	</container>
	<configuration>
    	<type>runtime</type>
    	<properties>
            <cargo.remote.username>admin</cargo.remote.username>
            <cargo.remote.password>admin</cargo.remote.password>
        	<cargo.tomcat.manager.url>http://localhost:8080/manager/text</cargo.tomcat.manager.url>
    	</properties>
	</configuration>
</configuration>

I-deploy gamit ang IntelliJ IDEA

Ginagawa ng Intellij IDEA ang lahat ng gawain mismo, ang kailangan mo lang ay isang naka-install na Tomcat .

Unang hakbang. Lumikha ng lokal na configuration ng Tomcat:

Ikalawang hakbang. Pagkatapos ay piliin ang lokal na Tomcat:

Ikatlong hakbang. Pag-configure ng Tomcat:

Ikaapat na hakbang. Idagdag ang landas sa folder ng Tomcat.

Ikalimang hakbang. Idinagdag namin ang aming proyekto bilang isang artifact sa Tomcat.

Upang gawin ito, pumunta sa tab na Deployment at i-click ang + button sa kanan .

Iyon lang.

Sa pamamagitan ng paraan, kung kailangan mong mag-deploy sa isang malayong server, piliin lamang ang Remote Tomcat sa pangalawang hakbang.