gpt4 book ai didi

maven - 如何使用 jenkins 在单个存储库中构建两个不同的项目

转载 作者:行者123 更新时间:2023-12-04 15:19:58 26 4
gpt4 key购买 nike

我遇到了一个情况,已经两个多星期了,但我无法解决问题。很抱歉对问题进行了冗长的描述。我想做的是:

我有两个不同的项目,比如 AB我必须使用 Jenkins 构建它们。虽然他们是独立的,但他们一起工作。所以我创建了不同的存储库并将它们命名为 Repo-ARepo-B我能够 build 它们。

这是一个真正的问题:现在我想从单个存储库中将它们构建在一起。所以我创建了一个名为 Demo 的存储库在 Bitbucket 中,现在我有两个项目 ABDemo存储库。

现在我创建了一个 pom.xml Demo 中的文件存储库,以便我可以将其用作父 POM 和每个项目 AB有自己的pom.xml .

项目演示pom.xml

<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>com.demo.parent</groupId>
<artifactId>Parent</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Maven Webapp</name>
<url>http://localhost:8081/nexus/content/repositories/releases</url>

<!--<url>http://maven.apache.org</url> -->

<modules>
<module>A</module>
<module>B</module>
</modules>

<distributionManagement>
<snapshotRepository>
<id>my-snapshots</id>
<name>Internal Repository</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>

<repository>
<id>my-releases</id>
<name>Internal Repository</name>
<url>http://localhost:8081/nexus/content/repositories/releases</url>
</repository>
</distributionManagement>

</project>

A项目 pom.xml
<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>com.a.batch</groupId>

<parent>
<groupId>com.demo.parent</groupId>
<artifactId>Parent</artifactId>
<version>0.01-SNAPSHOT</version>
</parent>

<artifactId>A</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>A Maven Webapp</name>
<url>http://localhost:8081/nexus/content/repositories/releases</url>

<dependencies>
<!-- Spring ORM support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>

<!-- Spring Batch -->
<dependency>
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-core</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-infrastructure</artifactId>
<version>3.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2</artifactId>
<version>1.6.2</version>
</dependency>

<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.5.0</version>
</dependency>

<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-local</artifactId>
<version>1.6.1</version>
</dependency>

<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-http</artifactId>
<version>1.6.1</version>
</dependency>

<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>

<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.1</version>
</dependency>
</project>

项目 Bpom.xml
<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>com.B</groupId>
<parent>
<groupId>com.demo.parent</groupId>
<artifactId>Parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>B</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>B Maven Webapp</name>
<!--url>http://maven.apache.org</url-->
<url>http://localhost:8081/nexus/content/repositories/releases</url>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.2.13.RELEASE</version>
</dependency>

<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
</project>

现在,当我使用 Jenkins 构建时,构建成功,但 Jenkins 没有生成任何 war文件。它正在生成三个不同的 pom项目代替。
[INFO] A Maven Webapp ........................... SUCCESS [  0.351 s]
[INFO] Demo Maven Webapp ............................ SUCCESS [ 0.056 s]
[INFO] B Maven Webapp ....................... SUCCESS [ 0.075 s]


[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.453 s
[INFO] Finished at: 2016-04-30T02:59:14+05:30
[INFO] Final Memory: 7M/176M
[INFO] ------------------------------------------------------------------------
[JENKINS] Archiving /var/lib/jenkins/jobs/Jenkins_Projects/workspace/A/pom.xml to com.A/A/1.0-SNAPSHOT/A-1.0-SNAPSHOT.pom
[JENKINS] Archiving /var/lib/jenkins/jobs/Jenkins_Projects/workspace/B/pom.xml to com.B/B/1.0-SNAPSHOT/B-1.0-SNAPSHOT.pom
[JENKINS] Archiving /var/lib/jenkins/jobs/Jenkins_Projects/workspace/Demo/pom.xml to Demo.Demo/Parent/1.0-SNAPSHOT/Parent-1.0-SNAPSHOT.pom
channel stopped
Finished: SUCCESS

如果我独立构建项目,构建成功并且我得到 .war文件也是如此。

但是当我从同一个存储库构建时 Demo并使用父 pom.xml我没有看到任何 .war文件虽然构建成功。

我该如何解决这个问题?

两个项目一起建的方法是什么?

为什么我收到 pom而不是 .war ?

为什么我收到 Parent-1.0-SNAPSHOT.pom虽然这不是一个项目。它只是一个 pom存储库内。

请指导我。

最佳答案

What is the way to build two projects together?



你通过声明 <modules> 做对了在 aggregator项目 Parent .

Why am I getting pom instead of .war?



您总是收到 *.pom如果您 installdeploy一个 Maven 项目。这就是 Maven 在 pom.xml 中存储项目配置的方式连同其存储库中创建的 Artifact 。

真正的问题是:为什么你只得到一个 *.pomAB ?

Why am I getting Parent-1.0-SNAPSHOT.pom though this is not a project. it is just a pom inside repository.


Parent实际上 一个 Maven 项目(包装类型 pom)。所以,得到 Parent-1.0-SNAPSHOT.pom build 时非常好。

提示:考虑使用 <dependencyManagment> 在你的父 POM 中。

关于maven - 如何使用 jenkins 在单个存储库中构建两个不同的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36958675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com