我是Maven的新手,我已经设置了2个maven项目,其中一个是我的实用程序API,第二个是Jersey API。我安装了实用程序API作为我的本地Maven存储库的一部分,并将其添加到pom.xml文件中。
一切都运行正常,只是当我想构建/运行测试时,我需要转到项目所在的每个目录并运行命令。有没有办法以某种方式运行一个命令或重新配置项目,以便我能够从REST API目录中处理所有内容?
EG。 mvn clean test ... something ... - >去测试我的两个项目。
再次,我是Maven的新手,但我也做了一项研究,找不到可以帮助我的正确有用的信息。如果这是需要关闭的问题之一,您能否在关闭之前至少向我提供更多信息?谢谢。
答案 0 :(得分:3)
您可以使用多模块maven项目。您可以定义这样的结构
/
pom.xml (A)
util-api
pom.xml (B)
jersey.api
pom.xml (C)
在儿童游戏中你指定一个<parent>
节点。
(A)pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mygroup.id</groupId>
<artifactId>myparentartifact</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
...
<modules>
<module>util-api</module>
<module>jersey-api</module>
</modules>
</pom>
(B)pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>myparentartifact</artifactId>
<groupId>mygroup.id</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>util-api</artifactId>
<packaging>jar</packaging>
</pom>
(C)pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>myparentartifact</artifactId>
<groupId>mygroup.id</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>jersey-api</artifactId>
<packaging>jar</packaging>
</pom>
使用此配置,您可以使用一个命令构建所有模块:mvn clean install
答案 1 :(得分:0)
您可以使用Maven的aggregation pom。
答案 2 :(得分:0)
您是否正在寻找一个可以运行测试的命令,还可以构建包含所有模块的应用程序?
我很瘦,你正在寻找mvn clean install
。
请确保,您在最高的maven pom.xml中说出这一点,它们都包含所有依赖项。
答案 3 :(得分:0)
通过使用模块功能使用顶级POM,可以选择将相关项目合并为一个。
<modules>
<module>utility-api</module>
<module>Jersey-api</module>
</modules>
可以使用
编译和运行测试用例mvn clean install
答案 4 :(得分:0)
您需要为您的2个模块创建父POM
<packaging>pom</packaging>
因此,当您在父POM上运行mvn install时,它将在每个子模块上运行它。
有关使用多个模块的更多信息here