我们有2个Maven应用程序,一个包含我们的jsps和表示层代码的war应用程序,以及一个包含我们业务层代码的共享库。
在迁移到maven之前,我们将共享库作为WAR应用程序的项目引用。每当我们在Netbeans中构建或调试WAR应用程序时,共享库将自动编译和构建,并自动获取任何新的更改。
使用Maven,看起来每次我们对共享库进行更改时,我们现在需要在调试之前构建共享库项目。有没有办法保持旧方法的效率?
当我们调试WAR应用程序时,是否有任何方法让Maven在我们调试时自动构建共享库依赖项(本地jar项目)?
答案 0 :(得分:0)
在eclipse中,只需设置正确的自动构建/ hot deploy即可。只需确保安装了maven插件并将其用作项目的构建器。
我不认为netbeans有很大的不同。
答案 1 :(得分:0)
好的,我终于使用maven invoker插件完成了这个:
<plugin>
<artifactId>maven-invoker-plugin</artifactId>
<version>1.6</version>
<configuration>
<projectsDirectory>../</projectsDirectory>
<pomIncludes>
<pomInclude>project1/pom.xml</pomInclude>
<pomInclude>project2/pom.xml</pomInclude>
</pomIncludes>
<goals>
<goal>install</goal>
</goals>
</configuration>
<executions>
<execution>
<id>build-deps</id>
<goals>
<goal>install</goal>
</goals>
</execution>
</executions>
我非常怀疑这是最佳做法,但它完成了工作。您可以将其安装到自己的配置文件中,以确保它不会干扰自动构建。
答案 2 :(得分:0)
我解决这个问题的方法是让父POM封装所有子组件:
myProject
+- myProject-web
+- myProject-bl
+- myProject-da
\- myProject-domain
每个都是一个独立的项目,它构建了自己的maven依赖项。然后,父POM只包括其他项目:
<modules>
<module>myProject-web</module>
<module>myProject-bl</module>
<module>myProject-da</module>
<module>myProject-domain</module>
</modules>
现在,无论何时构建myProject
,maven都会重建子组件(如果它们已过期)。由于maven单独构建每个子组件,因此您将拥有Maven存储库中的每个部分,可由需要使用项目的一个或多个部分的任何其他项目访问。