Tôi đã sử dụng mvn tomcat7-maven-plugin:run -am -pl :foo
thành công để chỉ chạy một dự án tại một thời điểm trong Tomcat like is shown here. Bây giờ tôi muốn có nhiều mô-đun chạy dưới cùng một cổng nhưng các ngữ cảnh khác nhau. Ví dụ, tôi muốn có:Làm thế nào để sử dụng maven plugin tomcat7: chạy với nhiều ngữ cảnh (WAR)?
/ => foo.war
/bar => bar.war
Dưới đây là một ví dụ pom.xml đoạn mã mà tôi đã làm việc với:
<project><!-- ... -->
<build><!-- ... -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0-SNAPSHOT</version>
<configuration>
<path>/</path>
<port>8080</port>
<addContextWarDependencies>true</addContextWarDependencies>
<addWarDependenciesInClassloader>true</addWarDependenciesInClassloader>
<warSourceDirectory>${project.build.directory}/${project.build.finalName}/</warSourceDirectory>
</configuration>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>bar</artifactId>
<version>${project.version}</version>
<type>war</type>
<scope>tomcat</scope>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
<pluginRepositories>
<pluginRepository>
<id>apache.snapshots</id>
<name>Apache Snapshots</name>
<url>http://repository.apache.org/content/groups/snapshots-group/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
Đây có phải là có thể với các plugin tomcat7-maven-plugin:run
? Tôi đang đấu tranh để tìm cú pháp chính xác để làm cho nó hoạt động tốt. Khi tôi chạy lệnh maven
để chạy nó, nó chỉ chạy lệnh đầu tiên mà nó tìm thấy trong hệ thống phân cấp dự án. Và nếu tôi chạy chúng với <fork>true</fork>
hoặc rõ ràng từ các thiết bị đầu cuối khác nhau thì tôi nhận được "java.net.BindException: Địa chỉ đã được sử dụng: 8080".
Tôi giả định rằng đó là một đoạn cấu hình để xác định ngữ cảnh chạy trong mô đun hiện tại dưới dạng gốc? tức là, đó có thể là cách thêm "bar.war" của tôi thành "/ bar" vào tệp pom.xml của "foo.war" của tôi là "/"? Nó không hoạt động trực tiếp vì phụ thuộc nhưng tôi vẫn chơi với nó. – mckamey
Tôi dường như không thể xử lý các phụ thuộc của "bar.war". Tôi đã cố gắng thêm chúng một cách rõ ràng như thế này http://stackoverflow.com/a/9928987/43217 nhưng không may mắn. – mckamey
Ngoài ra, nếu tôi cố gắng thêm "bar.war" như là một phụ thuộc của phạm vi "tomcat" vào mô-đun chính nó, sau đó nó xây dựng đầu tiên và tomcat7: chạy lệnh cố gắng thực hiện nó thay thế. – mckamey