2

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

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

使用 Maven,看起来每当我们对共享库进行更改时,我们现在都需要在调试之前构建共享库项目。有什么办法可以保留旧方法的效率吗?

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

4

3 回答 3

0

在 Eclipse 中,它只是正确设置自动构建/热部署的问题。只需确保安装了 maven 插件并将其用作项目的构建器即可。

我不认为netbeans有很大不同。

于 2012-06-28T15:53:39.853 回答
0

好的,我终于使用 maven 调用程序插件完成了这个:

<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>

我高度怀疑这是最佳实践,但它完成了工作。您可以将其安装到它自己的配置文件中,以确保它不会干扰自动化构建。

于 2012-06-29T20:51:49.667 回答
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>

现在,无论何时 build myProject,如果子组件过期,maven 都会重建它们。由于 Maven 单独构建每个子组件,因此您将在 Maven 存储库中拥有每个部分,任何其他需要使用项目的一个或多个部分的项目都可以访问。

于 2012-06-29T22:59:28.860 回答