2015-03-19 9 views
2

Я установил Tomcat 7.0.59 в OSX, однако при запуске плагина maven он говорит, что он работает 7.0.47 и создает новый каталог tomcat в целевой среде с некоторой новой конфигурацией. Я просто хочу, чтобы он запускал версию, которую я установил на машине, чтобы использовать конфигурацию под $ CATALINA_HOME/conf и развернуть приложение в $ CATALINA_HOME/webapps как обычно.Tomcat 7 Maven plugin running differrent version of Tomcat

Вот сообщение, когда работает плагин:

[INFO] Running war on http://localhost:8080/xxx 
[INFO] Creating Tomcat server configuration at /Users/abc/xxx/target/tomcat 
[INFO] create webapp with contextPath: /xxx 
INFO: Starting service Tomcat 
Mar 19, 2015 3:12:45 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.47 
Mar 19, 2015 3:12:50 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 

Это создает следующую структуру:

target/tomcat//conf: 
logging.properties tomcat-users.xml web.xml 

target/tomcat//logs: 
access_log.2015-03-19 

target/tomcat//webapps: 

target/tomcat//work: 
Tomcat 

target/tomcat//work/Tomcat: 
localhost 

target/tomcat//work/Tomcat/localhost: 
xxx 

target/tomcat//work/Tomcat/localhost/xxx: 

Вот конфиг плагина:

<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>localhost</server> 
    </configuration> 
</plugin> 

Это выход из /Library/Tomcat/bin/version.sh:

Using CATALINA_BASE: /Library/Tomcat 
Using CATALINA_HOME: /Library/Tomcat 
Using CATALINA_TMPDIR: /Library/Tomcat/temp 
Using JRE_HOME:  /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home 
Using CLASSPATH:  /Library/Tomcat/bin/bootstrap.jar:/Library/Tomcat/bin/tomcat-juli.jar 
Server version: Apache Tomcat/7.0.59 
Server built: Jan 28 2015 15:51:10 UTC 
Server number: 7.0.59.0 
OS Name:  Mac OS X 
OS Version:  10.10.2 
Architecture: x86_64 
JVM Version: 1.8.0_40-b25 
JVM Vendor:  Oracle Corporation 
+1

Tomcat7-maven-plugin _designed_ для запуска встроенного Tomcat. Вот что он делает! Вы можете попросить его развернуть приложение на экземпляр Tomcat с использованием [цели развертывания] (http://tomcat.apache.org/maven-plugin-trunk/tomcat7-maven-plugin/deploy-mojo.html), но это не запускает Tomcat. Maven не должен запускать внешние службы, это не то, что делает Maven, и плагины следуют этому дизайну. –

+0

спасибо. В этом случае как можно скопировать файлы в $ CATALINA_HOME/conf в target/tomcat/conf? – CCC

+0

Да, пожалуйста, ознакомьтесь с документацией. Существует множество опций конфигурации. Вы ищете ['extraConfigFilesDir'] (http://tomcat.apache.org/maven-plugin-2.0/tomcat7-maven-plugin/run-war-mojo.html#additionalConfigFilesDir). –

ответ

1

Причина в том, что плагин maven загружает собственную версию tomcat (которая не имеет ничего общего с локально установленным tomcat).

tomcat7-maven-plugin v. 2.2 имеет зависимость от Tomcat v. 7.0.47.

tomcat7-maven-plugin ссылается на родительский проект tomcat-maven-plugin, который сам определяет используемую версию tomcat (которая равна <tomcat7Version>7.0.47</tomcat7Version>). Просто посмотрите на POM XML.

0

Вы можете установить последнюю версию Tomcat (8.0.20), запустить его вручную, а затем запустить Maven плагин Tomcat 7 без каких-либо problems.I есть статью с полными инструкциями в моем блоге (http://blog.devcanvas.org/deploy-a-web-application-from-the-command-line-by-using-tomcat-maven-plugin/). Попробуйте использовать варево для Tomcat и для maven.

Смежные вопросы