Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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父项目既是父项目又是库_Java_Maven - Fatal编程技术网

Java Maven父项目既是父项目又是库

Java Maven父项目既是父项目又是库,java,maven,Java,Maven,我有两个独立的Maven项目: 项目A(图书馆) 项目B(客户) 背景如下: 项目A在其pom.xml中声明了某些第三方依赖项 项目A在项目B中声明为父项目 项目A本身也是一个通用库(具有一些公共接口和执行一些通用任务的相关实现类) 我试图通过将项目A声明为父项目,看看是否可以使项目B简单地继承依赖项 <parent> <groupId>net.example.com</groupId> <artifactId>projec

我有两个独立的Maven项目:

  • 项目A(图书馆)
  • 项目B(客户)
背景如下:

  • 项目A在其pom.xml中声明了某些第三方依赖项
  • 项目A在项目B中声明为父项目
  • 项目A本身也是一个通用库(具有一些公共接口和执行一些通用任务的相关实现类)
我试图通过将项目A声明为父项目,看看是否可以使项目B简单地继承依赖项

<parent>
    <groupId>net.example.com</groupId>
    <artifactId>projectA</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

net.example.com
项目A
0.0.1-快照
并将项目A作为依赖项包含,以利用它提供的所有库类

    <dependency>
        <groupId>net.example.com</groupId>
        <artifactId>projectA</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>

net.example.com
项目A
0.0.1-快照
以下是图书馆项目A的pom:

<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>projectA</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
       <!- Other dependencies -->
    </dependencies>
    <build>
    <plugins>
        <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.6</version>
        </plugin>
    </plugins>
</build>
</project>

4.0.0
com.example
项目A
0.0.1-快照
聚甲醛
org.springframework.boot
spring启动程序父级
2.0.1.1发布
UTF-8
1.8
org.springframework.boot
弹簧靴起动器
maven jar插件
2.6

请注意,我将其打包为pom。我已经包括了Maven Jar插件,但我正在尝试让Maven安装正确地生成Jar文件,并安装pom和Jar工件。

我认为这是一个问题,因为

  • 父项目必须是packaging=pom
  • 要制作一个罐子,您需要packaging=jar

  • 这通常是个坏主意。如果您想要的只是依赖项,那么这些依赖项无论如何都会以传递的方式包含进来,所以听起来您实际上是在尝试做一些事情,而不是您在问题中解释的事情。