2015-10-05 49 views
0

我有一個maven項目,它與tomcat 7插件集成在一起。每當我做的maven:安裝其生成的war文件,並將其放置在tomcat web apps文件夾中,並且我可以使用localhost訪問:8080如何從Maven中刪除tomcat插件

現在我想將tomcat7更改爲tomcat 8並且還希望單獨運行tomcat。

現在我正在使用maven的Tomcat7插件,我不想使用Tomcat 7和maven,我想使用Tomcat 8,它在我的系統中。

如何做到這一點?

對於我的新的tomcat服務器,可以告訴maven將生成的war文件放到新的tomcat服務器webapps文件夾中。

請找我的Tomcat插件配置下的pom.xml

<!-- Used by embedded Tomcat to move context.xml for JNDI resources --> 
      <!-- Configuration inherited from parent -->    
      <plugin> 
       <artifactId>maven-resources-plugin</artifactId> 
      </plugin> 
      <!-- Main configuration inherited from parent --> 
      <plugin> 
       <groupId>org.apache.tomcat.maven</groupId> 
       <artifactId>tomcat7-maven-plugin</artifactId> 
       <configuration> 
        <path>/</path> 
        <port>${httpPort}</port> 
        <httpsPort>${httpsPort}</httpsPort> 
       </configuration> 
      </plugin> 

而下面是我的Ant腳本,這將有助於在嵌入式的Tomcat

<target name="tomcat" > 
     <delete dir="war/WEB-INF/lib"/> 
     <artifact:mvn mavenHome="${maven.home}" fork="true"> 
      <jvmarg value="-XX:MaxPermSize=256M" /> 
      <jvmarg value="-Xmx512M" /> 
      <jvmarg value="-Xdebug" /> 
      <jvmarg value="-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" /> 
      <jvmarg value="-javaagent:${spring.instrument.path}" /> 
      <jvmarg value="-Druntime.environment=${runtime.environment}" /> 
      <jvmarg value="-Ddatabase.user=${database.user}" /> 
      <jvmarg value="-Ddatabase.password=${database.password}" /> 
      <jvmarg value="-Ddatabase.driver=${database.driver}" /> 
      <jvmarg value="-Ddatabase.url=${database.url}" /> 
      <arg value="compile"/> 
      <arg value="war:exploded"/> 
      <arg value="tomcat7:run"/> 
     </artifact:mvn> 
    </target> 

我的父POM部署war文件。 xml

  <!-- Moves the context.xml file into a location that embedded Tomcat can read from --> 
      <plugin> 
       <artifactId>maven-resources-plugin</artifactId> 
       <version>2.7</version> 
       <executions> 
        <execution> 
         <id>copy-resources</id> 
         <phase>validate</phase> 
         <goals> 
          <goal>copy-resources</goal> 
         </goals> 
         <configuration> 
          <outputDirectory>${project.build.directory}/${tomcat.conf.dir.name}</outputDirectory> 
          <resources> 
           <resource> 


    <directory>${project.basedir}/../lib/${tomcat.conf.dir.name}</directory> 
             <filtering>true</filtering> 
            </resource> 
           </resources> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 

       <!-- Main coniguration for embedded Tomcat --> 
       <plugin> 
        <groupId>org.apache.tomcat.maven</groupId> 
        <artifactId>tomcat7-maven-plugin</artifactId> 
        <version>2.2</version> 
        <configuration> 
<!--       Useful when deploying to Tomcat elsewhere on the system --> 
         <update>true</update> 
         <url>http://127.0.0.1:8080/manager/text</url> 
         <username>tomcatscript</username> 
         <password>secret</password> 


    <additionalConfigFilesDir>${project.build.directory}/${tomcat.conf.dir.name}</additionalConfigFilesDir> 
<!--       See the configuration in the keytool-maven-plugin --> 
         <keystorePass>broadleaf</keystorePass> 
         <keystoreFile>${webappDirectory}/WEB-INF/blc-example.keystore</keystoreFile> 

<!--       System properties for JNDI data sources (database.url, database.driver etc) are passed in via --> 
<!--        build.xml as -D arguments --> 

        </configuration> 
        <dependencies> 
<!--       Other dependencies --> 

         <dependency> 
          <groupId>commons-dbcp</groupId> 
          <artifactId>commons-dbcp</artifactId> 
          <version>1.4</version> 
          <type>jar</type> 
          <scope>compile</scope> 
         </dependency> 
         <dependency> 
          <groupId>org.apache.tomcat</groupId> 
          <artifactId>tomcat-jdbc</artifactId> 
          <version>7.0.30</version> 
          <type>jar</type> 
          <scope>compile</scope> 
         </dependency> 
        </dependencies> 
       </plugin> 

現在如何更改我的pom.xml或ant腳本以刪除嵌入的tom貓和包括本地tomcat 當我運行我的ant腳本時,Maven應該能夠部署或重新部署到本地tomcat安裝。

感謝

+0

那麼使用maven你的戰爭部署到它,有一個tomcat8插件...但它真的不明確當你說你想「分開保留tomcat」時你想要什麼。 – dcsohl

+1

您應該編輯您的問題以包含pom.xml文件的相關部分。 – Rob

+0

@Rob將盡快提供你.. – Babel

回答

0

首先,你需要刪除啓動Tomcat7的tomcat7 - Maven的插件相關的配置。

其次,你可以配置tomcat7 - Maven的插件使用Tomcat X REST管理API和描述http://www.disasterarea.co.uk/blog/deploying-to-tomcat-7-with-maven/

+0

該鏈接解釋瞭如何使用嵌入式tomcat maven插件..我想刪除使用maven添加tomcat插件並添加tomcat本地安裝 – Babel

+0

不,鏈接解釋瞭如何使用tomcat-maven-plugin來部署到本地Tomcat安裝。爲了做到這一點,你只需要指定配置選項:'url','username'和'password'。然後,你運行'mvn tomcat7:deploy'。 –

+0

請注意,當你使用'tomcat7-maven-plugin'時,你並不總是使用嵌入式Tomcat7。只有在使用目標'運行'或其他一些時才使用嵌入式。目標'deploy','undeploy'或'redeploy'不使用嵌入式。儘管如此,'tomcat7-maven-plugin'確實取決於嵌入式的,因此它會被下載到你的Maven本地倉庫。但是,如果您執行上面列出的目標,則不會使用它。 –