Not: Bu soru ilk sürümünde herhangi bir yanıt alamadım, bu yüzden daha genel olması modifiye ...Maven AND Eclipse'deki çeşitli web uygulamaları için paylaşılan kaynakları nasıl yönetirim?
Bağlam Projem birkaç maven ayrılmıştır
modüller ve çeşitli web uygulamaları. İşte yapı şu şekildedir: Yapı, JS, CSS ve resim dosyaları gibi tüm ortak uygulamaları paylaşır. Tüm web uygulamaları, JS, CSS ve resim dosyaları gibi ortak kaynakları paylaşır. Bu kaynakları her bir web-app-X
numaralı belgede çoğaltmak yerine, bir WAR projesi olan web-resources
adlı başka bir proje oluşturmaya karar verdim. yapısı aşağıdaki biridir:
my-project
+ pom.xml
+-- commons
+-- persistence
+-- ...
+-- web-app-1
+-- web-app-2
+-- ...
+-- web-resources
+-- pom.xml
+-- src/main/webapp
+-- web.xml (which is almost empty, just need to be present for Maven)
+-- web_resources
+-- css
+-- images
+-- javascript
Maven 2'de Maven
(veya Maven 3, sadece 3.0.2 maven için projemi göç gibi), bu yapılandırma
<groupId>foo.bar</groupId>
<artifactId>web-app-1</artifactId>
...
<dependencies>
<dependency>
<groupId>foo.bar</groupId>
<artifactId>web-resources</artifactId>
<version>${preclosing-version}</version>
<type>war</type>
</dependency>
...
yüzden inşa: tüm web-app-X
bir bağımlılık olarak web-resources
beyan olarak yönetmek kolay Benim savaş projem, ilk önce web-resources.war
(hemen önce inşa edilmiş), unzip olsun veweb-app-X
web uygulaması üzerine inşa. Bu şekilde, WAR dosyam da paylaşılan kaynakları içeren web-resources/
adlı bir dizin içerecektir.
Bu, savaş kaplaması prensibidir.
Maven bakış açısından, her şey yolunda!
Eclipse
Şimdi burada temel sorun gelir: İyi bir Eclipse konfigürasyonuna sahip.
Soru: Güncel yapılandırmamı Eclipse tarafından doğru şekilde yönetilmek üzere nasıl kullanabilirim? Özellikle, herhangi bir web-app-X
'u Tomcat'ta Eclipse ...
kullanarak dağıttığımda, daha fazla otomatikleştirilebilir (?) Yapılandırmayı almak ve herhangi bir manuel adımdan kaçınmak istiyorum, çünkü bu yapılandırma onlarca geliştirici tarafından kullanılmalıdır. ..
Benim için en iyi çözüm, Eclipse bağlantılı kaynaklarını kullanıyor görünmektedir. Böylece, aşağıdaki yapılandırmayı web-app-X
pompamda ayarlıyorum.xml: Ben mvn eclipse:eclipse
yapılandırma çalıştırdığınızda
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<wtpversion>1.5</wtpversion>
<linkedResources>
<linkedResource>
<name>web_resources</name>
<type>2</type>
<location>${project.basedir}\..\web-resources\src\main\webapp\web_resources</location>
</linkedResource>
</linkedResources>
</configuration>
</plugin>
...
, benim .project
dosyasında başarıyla bu bilgileri ekler:
<projectDescription>
...
<linkedResources>
<link>
<name>web_resources</name>
<type>2</type>
<location>C:\dev\project\web-resources\src\main\webapp\web_resources</location>
</link>
</linkedResources>
<projectDescription>
Şimdi Eclipse benim proje almayı. Sorun: Project properties > Java Build Path > Source
'da, Bağlantı Kaynağını şimdi göremiyorum. Sadece dört Maven varsayılan dizinleri görüyorum (src/main/java
, src/main/resources
, src/test/java
ve src/test/resources
). Ne garip değil mi Eclipse benim Tomcat benim web uygulaması dağıtırken Yani, değil dağıtmaya yapar ...
el bağlantılı kaynakları eklemeye çalıştığınızda, bu reddediyor ve bu zaten olduğunu belirten web_resources dizini ve böylece CSS/JS/görüntüleri dağıtılmadım. Bazı testlerden sonra
, iki değişiklik yapmak zorunda gibi görünüyor:- benim
.classpath
dosyasında satır<classpathentry kind="src" path="web_resources" output="src/main/webapp/web_resources"/>
ekleyin; .project
dosyasındaki<project>preclosing-web-resources</project>
dosyasını kaldırın. Bu yapılandırmayı kullanarak, Eclipse kopyalamak (ve senkronizasyon tutmak) web_resources projenin içeriğini benimweb-app-X/src/main/webapp/web_resources
yılında, ancak bu (bu dizin SCM tarafından göz ardı edilir) bir sorun değil ki
Not.
mvn eclipse:clean eclipse:eclipse myEclipsePlugin:eclipse
:
buldum sadece otomatik çözeltisi (bir .bat dosyası veya kullanmak) önceki iki değişiklik yapmak basit bir Maven eklentisi oluşturmak ve sonra aşağıdaki komutu çalıştırmak için oldu Soru- Böyle bir yapılandırmayı yönetmenin daha iyi bir yolu var mı?
Teknik bilgiler
Java 6, Maven 3.0.2, maven Tutulma eklenti 2.8, 3.3.2 Eclipse (ama Eclipse daha yeni bir sürümü ile test edebilirsiniz), hiçbir m2eclipse Eklenti.