Maven + Netbeans调试WAR应用程序

时间:2012-06-28 15:47:20

标签: java maven netbeans

我们有2个Maven应用程序,一个包含我们的jsps和表示层代码的war应用程序,以及一个包含我们业务层代码的共享库。

在迁移到maven之前,我们将共享库作为WAR应用程序的项目引用。每当我们在Netbeans中构建或调试WAR应用程序时,共享库将自动编译和构建,并自动获取任何新的更改。

使用Maven,看起来每次我们对共享库进行更改时,我们现在需要在调试之前构建共享库项目。有没有办法保持旧方法的效率?

当我们调试WAR应用程序时,是否有任何方法让Maven在我们调试时自动构建共享库依赖项(本地jar项目)?

3 个答案:

答案 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存储库中的每个部分,可由需要使用项目的一个或多个部分的任何其他项目访问。