Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven为web应用程序构建自动化_Java_Maven_Build Automation - Fatal编程技术网

Java Maven为web应用程序构建自动化

Java Maven为web应用程序构建自动化,java,maven,build-automation,Java,Maven,Build Automation,我有一个项目的三个模块,分别作为两个独立的jar和一个WAR进行开发。战争指的是另外两个罐子。请参阅下面的详细信息- 1.processDAO——这是一个生成jar的java项目(processDAO.jar) 2.ProcessModel——这是一个生成jar(ProcessModel.jar)的java项目。在pom.xml中,它是指(processDAO.jar) 3.ProcessWebApp——这是主要的web应用程序项目,如War制作(ProcessWebApp.War)。现在使用的

我有一个项目的三个模块,分别作为两个独立的jar和一个WAR进行开发。战争指的是另外两个罐子。请参阅下面的详细信息-

1.processDAO——这是一个生成jar的java项目(processDAO.jar)

2.ProcessModel——这是一个生成jar(ProcessModel.jar)的java项目。在pom.xml中,它是指(processDAO.jar)

3.ProcessWebApp——这是主要的web应用程序项目,如War制作(ProcessWebApp.War)。现在使用的是(processModel.jar)

现在,在每次开发之后,当我需要构建WAR文件时,我首先构建-(processDAO.jar) 然后是第二个-processModel.jar 最后我构建了ProcessWebApp.WAR

所以每次我都必须遵循这个顺序构建过程。现在,每当我构建ProcessWebApp.WAR时,我都希望其他依赖项以相同的顺序自动构建(1->2->3)

任何关于这方面的建议都会非常有用

我使用的是带有mavenplugin的Eclipse环境。我只需右键单击每个项目,然后运行“Maven安装”

1.processDAO.pom

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>processDAO</groupId>
<artifactId>processDAO</artifactId>
<version>2.0</version>
<packaging>jar</packaging>

4.0.0
过程刀
过程刀
2
罐子

2.ProcessModel.pom

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>ProcessModel</groupId>
<artifactId>ProcessModel</artifactId>
<version>2.0</version>
<packaging>jar</packaging>
<dependencies>
    <dependency>
        <groupId>processDAO</groupId>
        <artifactId>processDAO</artifactId>
        <version>2.0</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

4.0.0
过程模型
过程模型
2
罐子
过程刀
过程刀
2
编译

3.ProcessWebApp.pom

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>ProcessWebApp</groupId>
<artifactId>ProcessWebApp</artifactId>
<version>2.0</version>
<packaging>jar</packaging>
<dependencies>
    <dependency>
        <groupId>ProcessModel</groupId>
        <artifactId>ProcessModel</artifactId>
        <version>2.0</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

4.0.0
ProcessWebApp
ProcessWebApp
2
罐子
过程模型
过程模型
2
编译

听下面几个问题,这些问题与您创建pom的方式或您想要实现的目标有关

对现有示例的一个小注释是修复
元素,通常它是com.xxx.my.company的内容,与工件id不相同

现在据我所知,您似乎仍在更改依赖模块上的代码,这意味着您正在发布
快照
版本(否则,您不需要每次都检查libs的兼容性,对吗?)。请参阅有关使用xxx快照的问题

还要检查-U标志mvn clean install-U的使用情况。请参见
mvn-帮助

-U、 --更新快照强制检查丢失的快照 在上发布和更新快照 远程存储库


听一下,您创建pom的方式或您想要实现的目标有几个问题

对现有示例的一个小注释是修复
元素,通常它是com.xxx.my.company的内容,与工件id不相同

现在据我所知,您似乎仍在更改依赖模块上的代码,这意味着您正在发布
快照
版本(否则,您不需要每次都检查libs的兼容性,对吗?)。请参阅有关使用xxx快照的问题

还要检查-U标志mvn clean install-U的使用情况。请参见
mvn-帮助

-U、 --更新快照强制检查丢失的快照 在上发布和更新快照 远程存储库


这通常通过使用父项目POM来实现,其唯一目的是构建它所依赖的模块。创建POM时,将包装类型指定为“POM”,然后将WAR和JAR指定为模块元素。Sonatype的网站上有一个很好的例子和描述。

这通常是通过使用父项目POM来实现的,其唯一目的是构建它所依赖的模块。创建POM时,将包装类型指定为“POM”,然后将WAR和JAR指定为模块元素。Sonatype的网站上有一个很好的例子和描述。

那么当你说pom.xml中的reffering(processDAO.jar)是什么意思?我是说,你是如何通过POM实现这一点的?还有,您是如何做到这一点的,现在使用的是(processModel.jar)?@Gimby您所说的父pom是什么意思???有thrre项目和三个pom。两个是Jar项目,一个是WAR。最后一个是实际的webapplication@Gimby我们这样做是为了确保前两个jar文件作为可插入组件工作,我们可以插入到任何应用程序中。现在,我已经用第三个(ProcessWebApp.WAR)插入了它们.你能详细说明一下你的想法或同一个(多模块项目)的任何链接吗?那么,当你说pom.xml中是reffering(processDAO.jar)时,你是什么意思?我是说,你是如何通过POM实现这一点的?还有,您是如何做到这一点的,现在使用的是(processModel.jar)?@Gimby您所说的父pom是什么意思???有thrre项目和三个pom。两个是Jar项目,一个是WAR。最后一个是实际的webapplication@Gimby我们这样做是为了确保前两个jar文件作为可插入组件工作,我们可以插入到任何应用程序中。现在,我已经用第三个(ProcessWebApp.WAR)插入了它们。您能详细说明您的想法或同一(多模块项目)的任何链接吗?是的,您是对的。groupId应该是这样的。谢谢您的建议,但此答案不适用于当前上下文。,是的,依赖模块正在变化,这就是为什么我需要一直构建它。这是一个多模块应用程序兄弟,我想你对此有想法。请看这里的多模块应用程序示例是的,我知道多模块项目是什么:)是的,你是对的,groupId应该是这样谢谢你的建议,但这个答案不是针对当前的上下文。是的,依赖模块正在改变,这就是为什么我需要一直构建它。这是一个多模块应用程序兄弟,我想你已经知道了。请看这里的多模块应用程序示例是的,我知道多模块项目是什么:)